2

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

ログにファイル名や行番号は出力されません。私は何が欠けていますか?

4

1 に答える 1

3

log()これは、関数に情報を渡していないためです。関数は次のlog()ように宣言されます。

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

ご覧のとおり、ファイルと行の情報を指定しない限り、「空の」値が渡されます。

自分で情報を渡すか、log4cplus/loggingmacros.h提供されているロギングマクロを含めて使用します。これにより、情報が提供されます。

于 2013-03-13T15:31:52.177 に答える