如果一个特定的模块正在使用 log4perl 进行日志记录,那么有没有办法在内部使用 log4perl 获取该模块的名称。或者消息是从 srcipt(.pl) 记录的,除了使用调用者或任何不显式使用 log4perl 函数的函数之外,我们是否也可以使用 log4perl 获取脚本的名称。
问问题
70 次
1 回答
2
对于类或包,您可以这样做。它记录在 Log::Log4perl::Layout::PatternLayout中。在您的日志模式中,使用以下之一。
%C Fully qualified package (or class) name of the caller
对于脚本的名称:
%F File where the logging event occurred
这些也很有用:
%l Fully qualified name of the calling method followed by the callers source the file name and line number between parentheses. %L Line number within the file where the log statement was issued
Log::Log4perl::Layout::PatternLayout本身的文档有更多细节。
这是一个如何将其与配置文件一起使用的示例。
log4perl.appender.LOGFILE.layout=PatternLayout log4perl.appender.LOGFILE.layout.ConversionPattern=[%r] %F %L %c - %m%n
于 2017-04-18T09:23:52.420 回答