如果某个特定模块使用log4perl进行日志记录,那么有没有办法在内部使用log4perl获取该模块的名称。或者从srcipt(.pl)记录消息,除了使用调用者或任何不明确使用log4perl函数的函数之外,我们还可以使用log4perl来获取脚本的名称。
答案 0 :(得分:2)
对于课程或包,您可以这样做。这是documented with 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本身的文档有更多细节。
Here's an example如何在配置文件中使用它。
log4perl.appender.LOGFILE.layout=PatternLayout log4perl.appender.LOGFILE.layout.ConversionPattern=[%r] %F %L %c - %m%n