2013-10-17 Log4perl多个Appender重复输出日志的问题解决办法
Perl开发中会经常用到Log4perl来输出日志,例如有类似如下配置:
1
log4perl.rootLogger = DEBUG, Screen
2
log4perl.logger.Utils = DEBUG, Screen
3
4
log4perl.appender.Logfile = Log::Log4perl::Appender::File
5
log4perl.appender.Logfile.filename = test.log
6
log4perl.appender.Logfile.layout = Log::Log4perl::Layout::PatternLayout
7
log4perl.appender.Logfile.layout.ConversionPattern = %r %F %L %m%n
8
9
log4perl.appender.Screen = Log::Log4perl::Appender::Screen
10
log4perl.appender.Screen.stderr = 1
11
log4perl.appender.Screen.layout = Log::Log4perl::Layout::PatternLayout
12
log4perl.appender.Screen.layout.ConversionPattern = %M | %m%n
Copied!
结果发现Utils中的消息,一次debug调用会输出两条同样的消息。Google一查发现还很常见,老祖宗Log4j下面也有类似的问题。作者在FAQ中提到了这个问题,解决办法除了与Log4j类似的解决方案之外,Log4perl还有一个简单的办法,只要在配置加入一行
1
log4perl.oneMessagePerAppender = 1
Copied!
最近更新 1yr ago
复制链接