如果一个特定的模块使用log4perl进行日志记录,那么有没有办法在内部使用log4perl获取该模块的名称。或者消息是从srcipt(.pl)记录下来的,除了使用caller或任何不显式使用log4perl函数的函数之外,我们还可以使用log4perl来获得脚本的名称吗?
发布于 2017-04-18 17:23:52
对于类或包,您可以这样做。我是documented with Log::Log4perl::Layout::PatternLayout。在您的日志模式中,请使用以下选项之一。
调用方的
%C完全限定的包(或类)名称
对于脚本的名称:
发生日志记录事件的
%F文件
这些方法也很有用:
%l调用方法的完全限定名,后跟调用方源、文件名和括号之间的行号。%L发出日志语句的文件中的行号
Log::Log4perl::Layout::PatternLayout的文档本身甚至有更多的细节。
如何在配置文件中使用它的Here's an example。
log4perl.appender.LOGFILE.layout=PatternLayout log4perl.appender.LOGFILE.layout.ConversionPattern=%r %F%L%c- %m%n
https://stackoverflow.com/questions/43467923
复制相似问题