首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >log4perl:持续显示logcluck

log4perl:持续显示logcluck
EN

Stack Overflow用户
提问于 2011-04-19 20:56:04
回答 1查看 212关注 0票数 3

我正在试验log4perl,遇到了一个奇怪的问题:

我将我的log4perl配置为记录调试级别以上的所有内容,我想将所有内容输出到一个文件中,但是,我只想在屏幕上显示错误或死亡。下面是我的配置文件:

代码语言:javascript
复制
#############################################################################################################################
## 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

注意,屏幕输出的阈值设置为error!这对于常规的$logger->error和$logger->warn命令非常有效,错误同时输出到文件和屏幕,警告只输出到文件。

然而,当我尝试$logger->logcluck(" cluck ")时,即使cluck处于警告级别,它仍然会输出到屏幕上!

奇怪的是,如果我将文件阈值设置为错误,它不会显示在我的文件中,如果我将总体级别设置为错误,它也不会显示在屏幕上。

你知道为什么会发生这样的事情吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-19 23:21:05

这是因为logcluck既做日志记录(作为警告)又做咯咯声(Carp::cluck)。然后是后者将其打印到控制台。

如果你想让咯咯声只出现在日志中,我不确定有没有办法自己调用Carp::longmess并记录下来。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5716676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档