zoukankan      html  css  js  c++  java
  • 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  
    }  
  • 相关阅读:
    Leetcode 811. Subdomain Visit Count
    Leetcode 70. Climbing Stairs
    Leetcode 509. Fibonacci Number
    Leetcode 771. Jewels and Stones
    Leetcode 217. Contains Duplicate
    MYSQL安装第三步报错
    .net 开发WEB程序
    JDK版本问题
    打开ECLIPSE 报failed to load the jni shared library
    ANSI_NULLS SQL语句
  • 原文地址:https://www.cnblogs.com/DswCnblog/p/5459539.html
Copyright © 2011-2022 走看看