微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

log4perl:logcluck继续显示

如何解决log4perl:logcluck继续显示

我正在尝试使用log4perl并遇到一个奇怪的问题: 我将我的log4perl配置为记录DEBUG级别以上的所有内容,我想将所有内容输出文件,但是,我只想在屏幕上显示错误或致命信息。这是我的配置文件
#############################################################################################################################
## Logger                                                                                                                  ##
#############################################################################################################################
log4perl.logger                                     = DEBUG,fileLog,screenLog

#############################################################################################################################
## File Log (all levels)                                                                                                   ##
#############################################################################################################################
log4perl.appender.fileLog                       = Log::Log4perl::Appender::File
log4perl.appender.fileLog.filename              = error_log
log4perl.appender.fileLog.mode                  = append
log4perl.appender.fileLog.layout                = Log::Log4perl::Layout::PatternLayout
log4perl.appender.fileLog.layout.ConversionPattern = %d [%p] [%F line %L] %m%n

#############################################################################################################################   
## Screen Log (only error level or higher)                                                                                 ##
#############################################################################################################################
log4perl.appender.screenLog                       = Log::Log4perl::Appender::Screen
log4perl.appender.screenLog.Threshold               = ERROR                                     
log4perl.appender.screenLog.layout                   = Log::Log4perl::Layout::PatternLayout
log4perl.appender.screenLog.layout.ConversionPattern = %d [%p] [%F line %L] %m%n
注意屏幕输出的阈值设置为错误!这对于常规的$ logger-> error和$ logger-> warn命令非常有用,错误会同时输出文件和屏幕,警告仅输出文件。 但是,当我尝试$ logger-> logcluck(\“ cluck \”)时,即使cluck处于WARN级别,它仍然会输出到屏幕上! 足够奇怪的是,如果我将文件阈值设置为错误,则它不会显示文件中;如果我将整体级别设置为错误,则它也不会显示在屏幕上。 有什么想法为什么会这样?

解决方法

这是因为logcluck会同时记录日志(作为警告)和咯咯声(Carp :: cluck)。然后是后者将其打印到控制台。 如果您只希望咯咯笑声只出现在日志中,我不确定是否可以通过自己调用Carp :: longmess并记录下来来解决。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?