log4cplus不打印文件名和行号

问题描述:

我使用log4cplus库(V1.0.0),并如下设置记录器:log4cplus不打印文件名和行号

std::string formatString("%-5p [%F,%L] %m%n"); 
std::auto_ptr <log4cplus::Layout> layout(new log4cplus::PatternLayout(formatString)); 
logAppender->setLayout(layout); 

我使用下面的函数来记录:

log4cplus::Logger logger; 
logger.log(INFO_LOG_LEVEL, msg); 

在日志中打印日志信息是:

DEBUG [,] My log message 
INFO [,] My other log message 

它不打印的文件名或叔他在日志中的行号。我错过了什么?

这是因为您没有将任何信息传递到log()函数。该log()函数声明如下:

void log(LogLevel ll, const log4cplus::tstring& message, 
     const char* file=NULL, int line=-1) const; 

正如你所看到的,除非你提供的文件和行信息,它通过在“空”值。

要么你自己传递信息,要么包括log4cplus/loggingmacros.h,并使用提供的日志记录宏,它们可以帮助你。