2013-03-13 50 views
2

我使用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 

它不打印的文件名或叔他在日誌中的行號。我錯過了什麼?

回答

3

這是因爲您沒有將任何信息傳遞到log()函數。該log()函數聲明如下:

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

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

要麼你自己傳遞信息,要麼包括log4cplus/loggingmacros.h,並使用提供的日誌記錄宏,它們可以幫助你。