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  
    }  
  • 相关阅读:
    fetch API 和 ajax
    java 通过数据库名获得 该数据所有的表名以及字段名、字段类型
    自定义注解,通过反射获得注解中的值(详细自定义注解解释)
    main方法中sleep
    eclipse中设置JVM内存
    命令java 找不到或无法加载主类
    windows下的命令
    mac terminal基本命令
    ThreadLocal 源码剖析
    SQL中的函数用法
  • 原文地址:https://www.cnblogs.com/DswCnblog/p/5459539.html
Copyright © 2011-2022 走看看