我正在使用log4cplus库(v1.0.0)和记录器设置如下:
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
并使用提供的日志宏来为您完成此操作。
关于log4cplus不打印文件名和行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15388923/