0

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

4

1 回答 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 回答