log4cplus不打印文件名和行号

标签 log4cplus

我正在使用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/

相关文章:

html - 在 C++ linux 中使用 log4cplus 将日志写入 html 文件

logging - 如何使用log4cplus打印本地系统时间?

sockets - Log4cplus:SocketAppender 是否有加密选项?

c++ - 使用 Visual Studio 构建时缺少 log4cplus ad.lib

c++ - 无法打开包含文件 : 'log4cxx\logger.h' : No such file or directory

c++ - Log4Cplus加载配置文件

c++ - 未定义对 Logger::getInstance() 的引用 - 但仅在某些情况下

ios - 此体系结构 ios 不支持线程本地存储

c++ - log4cplus:在 Logger::shutdown on Windows 上崩溃

c++ - 如何在共享库中链接 log4cplus.a?