基于log4cpp和boost的日志模块

本文介绍如何结合log4cpp库和boost工具集来构建一个高效、可靠的日志模块。通过示例代码展示了如何配置和使用这两个库进行日志记录,并提到了在实际应用中需要链接的库文件。
摘要由CSDN通过智能技术生成

头文件:

#ifndef LOG4CPP 
#define LOG4CPP 
#include <log4cpp/Category.hh> 
#include <log4cpp/FileAppender.hh> 
#include <log4cpp/BasicLayout.hh> 
#include <log4cpp/RollingFileAppender.hh> 
#include <log4cpp/PatternLayout.hh> 
 
namespace niiwoo  
{ 
namespace util 
{ 
namespace log 
{ 
        enum LOG_LEVEL 
        { 
                        LOG_LEVEL_NONE  = 0,    // 不打日志      
                        LOG_LEVEL_ERROR = 1, 
                        LOG_LEVEL_WARN  = 2, 
                        LOG_LEVEL_INFO  = 3, 
                        LOG_LEVEL_DEBUG = 4, 
 
                        LOG_LEVEL_MAX   = 5       
        }; 
         
        enum ERR_CODE 
        { 
                ERR_CODE_OK = 0, 
                ERR_CODE_PATH = -1, 
 
                OTHER_ERR = -2 
        }; 
 
        // 调用NiiwooLog* GetInstance()->Init() 初始化之后,即可使用以下宏打印日志 
        // DEBUG级别日志会同时打印到屏幕一份 
        #define LOG4_DEBUG(...) NiiwooLog::GetInstance()->Log(LOG_LEVEL_DEBUG, __FILE__, __LINE__, __FUNCTION__, __VA_ARGS__) 
        #define LOG4_WARN(...) NiiwooLog::GetInstance()->Log(LOG_LEVEL_WARN, __FILE__, __LINE__, __FUNCTION__, __VA_ARGS__) 
        #define LOG4_INFO(...) NiiwooLog::GetInstance()->Log(LOG_LEVEL_INFO, __FILE__, __LINE__, __FUNCTION__, __VA_ARGS__) 
        #define LOG4_ERROR(...) NiiwooLog::GetInstance()->Log(LOG_LEVEL_ERROR, __FILE__, __LINE__, __FUNCTION__, __VA_ARGS__)    
 
        class NiiwooLog 
        { 
        public: 
                ERR_CODE Init(std::string strLogPath, std::string strModName, LOG_LEVEL lev, long iLogFileSize, long iLogPathSize);//ilogFileSize:size of per log file:Byte,iLogPathSize:Maxsize of LogPath:Byte 
        private: 
                NiiwooLog(); 
                virtual ~NiiwooLog(); 
      public:
<span style="white-space:pre">		</span>static NiiwooLog* GetInstance();


<span style="white-space:pre">		</span>int Log(LOG_LEVEL lev, char const *file, int line, char const *func, char const *format, ...);
<span style="white-space:pre">		</span>int SetFileName(std::string& FileName, std::string strModName);
<span style="white-space:pre">		</span>ERR_CODE CheckPath(std::string &strLogPath);
<span style="white-space:pre">		</span>int SetLev(LOG_LEVEL lev);
<span style="white-space:pre">		</span>int RebuildCurLog();
<span style="white-space:pre">		</span>void LogClearTimer(std::string strLogPath, long lPathSize);
<span style="white-space:pre">	</span>private:
<span style="white-space:pre">			</span>
<span style="white-space:pre">		</span>LOG_LEVEL m_lev;
<span style="white-space:pre">		</span>log4cpp::Category *m_pTotal;
<span style="white-
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值