• C++ 简单的日志类


    /* 
    简单的日志记录类. (日志而已,何必那么复杂!!!) 
    W.J.Chang 2013.12.13 
     
    说明:(EasyLog.h) 
    1, 简单的单件实现(自动垃圾回收) 
    2, 使用方法:EasyLog::Inst()->Log("Run..."); 
    3, 日志记录结果:Run...    [2013.12.13 16:38:42 Friday] 
    */  
    #pragma once  
    #ifndef EASY_LOG_H_8080  
    #define EASY_LOG_H_8080  
    #include <memory>  
    #include <ctime>  
    #include <iostream>  
    #include <fstream>  
    class EasyLog  
    {  
    public:  
        static EasyLog * Inst(){  
            if (0 == _instance.get()){  
                _instance.reset(new EasyLog);  
            }  
            return _instance.get();  
        }  
      
        void Log(std::string msg); // 写日志的方法  
    private:  
        EasyLog(void){}  
        virtual ~EasyLog(void){}  
        friend class std::auto_ptr<EasyLog>;  
        static std::auto_ptr<EasyLog> _instance;  
    };  
      
    std::auto_ptr<EasyLog> EasyLog::_instance;  
      
    void EasyLog::Log(std::string loginfo) {  
        std::ofstream ofs;  
        time_t t = time(0);  
        char tmp[64];  
        strftime(tmp, sizeof(tmp), "	[%Y.%m.%d %X %A]", localtime(&t));  
        ofs.open("EasyLog.log", std::ofstream::app);  
        ofs.write(loginfo.c_str(), loginfo.size());  
        ofs << tmp << '
    ';  
        ofs.close();  
    }  
    #endif  

    用法如下:

    #include "EasyLog.h"
    
    int main()
    { EasyLog::Inst()
    ->Log("Run..."); }

    不只是main函数中,任何地方只要include头文件就可以用。

    主要是辅助调试,特别是写dll程序的时候比较实用。可以加个宏控制。在发布的时候关掉日志功能。

    #include "EasyLog.h"  
      
    #define EASYLOG 1  
      
    int main(){  
    #if EASYLOG  
        EasyLog::Inst()->Log("Run...");  
    #endif  
    }  
  • 相关阅读:
    [论文阅读] Look Closer to Supervise Better: OneShot Font Generation via ComponentBased Discriminator
    Master笔记 22711 @GANs N' Roses@GAN指标
    [vite]使用pnpm创建vite+vue3项目
    set,Map 和 数组的扩展方法
    ES6 中的导包
    ES6 中的类
    Symbol 类型
    ES6 中的迭代器和生成器
    ES6 中的对象
    基础语法
  • 原文地址:https://www.cnblogs.com/DswCnblog/p/5459539.html
Copyright © 2020-2023  润新知