获取使用log4perl记录消息的模块或脚本的名称

时间:2017-04-18 09:04:16

标签: perl log4perl

如果某个特定模块使用log4perl进行日志记录,那么有没有办法在内部使用log4perl获取该模块的名称。或者从srcipt(.pl)记录消息,除了使用调用者或任何不明确使用log4perl函数的函数之外,我们还可以使用log4perl来获取脚本的名称。

1 个答案:

答案 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