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
,并使用提供的日志记录宏,它们可以帮助你。