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日志代码下载:
结尾
只为记录,只为分享! 愿所写能对你有所帮助。Good Good Study, Day Day Up!