您的位置:首页 > 其它

log4cplus应用之日志文件输出(三)

2017-03-26 21:16 435 查看

log4cplus封装

log4cplus配置文件

log4cplus.logger.test1=TRACE,test1
log4cplus.appender.test1=log4cplus::RollingFileAppender
log4cplus.appender.test1.MaxFileSize=40MB
log4cplus.appender.test1.MaxBackupIndex=4
log4cplus.appender.test1.File=test1.log
log4cplus.appender.test1.ImmediateFlush=true
log4cplus.appender.test1.appendFile=true
log4cplus.appender.test1.layout=log4cplus::PatternLayout
log4cplus.appender.test1.layout.ConversionPattern=[%D{%y-%m-%d %H:%M:%S:%q}] [%p] - %m%n

log4cplus.logger.test2=TRACE,test2
log4cplus.appender.test2=log4cplus::RollingFileAppender
log4cplus.appender.test2.MaxFileSize=40MB
log4cplus.appender.test2.MaxBackupIndex=4
log4cplus.appender.test2.File=test2.log
log4cplus.appender.test2.ImmediateFlush=true
log4cplus.appender.test2.appendFile=true
log4cplus.appender.test2.layout=log4cplus::PatternLayout
log4cplus.appender.test2.layout.ConversionPattern=[%D{%y-%m-%d %H:%M:%S:%q}] [%p] - %m%n

log4cplus.logger.test3=TRACE,test3
log4cplus.appender.test3=log4cplus::RollingFileAppender
log4cplus.appender.test3.MaxFileSize=40MB
log4cplus.appender.test3.MaxBackupIndex=4
log4cplus.appender.test3.File=test3.log
log4cplus.appender.test3.ImmediateFlush=true
log4cplus.appender.test3.appendFile=true
log4cplus.appender.test3.layout=log4cplus::PatternLayout
log4cplus.appender.test3.layout.ConversionPattern=[%D{%y-%m-%d %H:%M:%S:%q}] [%p] - %m%n


在程序初始化时,我们需要加载此配置文件。

log4cplus::initialize();

PropertyConfigurator::doConfigure(LOG4CPLUS_STRING_TO_TSTRING(“your config path”));

获取Logger对象

Logger::getInstance(LOG4CPLUS_STRING_TO_TSTRING(module));

输出文件日志:

LOG4CPLUS_DEBUG(Logger::getInstance(LOG4CPLUS_STRING_TO_TSTRING(module)), LOG4CPLUS_STRING_TO_TSTRING(msg));

如何封装带时间计数日志文件

应用背景

有时候,我们需要知道,我们调用的方法耗时多长时间,达到准确定位应用程序耗时问题。

封装代码

class LogFunc
{
public:
LogFunc(const char * module, const char * pFunc) :modu(module), qs(pFunc)  { L_DEBUG(modu, qs + " enter."); }
~LogFunc()  { L_DEBUG(modu, qs + " exit."); }
private:
std::string modu;
std::string qs;
};

class LogFuncTime
{
public:
LogFuncTime(const char * module, const char * pFunc) :modu(module), qs(pFunc)
{
L_DEBUG(modu, qs + " enter.");
nTime = GetTickCount();
}

~LogFuncTime()
{
nTime = GetTickCount() - nTime;
std::string log = qs + " exit. Time = " + std::to_string(nTime);
L_DEBUG(modu, log);
}
private:
std::string modu;
std::string qs;
INT64 nTime;
};


封装Log4日志代码下载:

Log4cplus封装日志代码,包含函数时间耗时计数。

结尾

只为记录,只为分享! 愿所写能对你有所帮助。Good Good Study, Day Day Up!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: