2011-05-10 44 views

回答

11

如果您已经从Log::Log4perl::Level进口的日志级别常量,那么你可以做这样的事情:

$logger->level($ERROR); # one of DEBUG, INFO, WARN, ERROR, FATAL 

$logger->more_logging($delta); # Increase log level by $delta levels, 
           # a positive integer 

$logger->less_logging($delta); # Decrease log level by $delta levels. 

这是在Log::Log4perl docsChanging the Log Level on a Logger部分。

+0

好吧,但我将如何指定我想更改日志级别的包? – 2011-06-13 12:53:56

2

这似乎有点哈克给我,但它的工作原理:

$Log::Log4perl::Logger::APPENDER_BY_NAME{SCREEN}->threshold($DEBUG);

,并使其更有活力,你可以在该追加程序名称和级别变量传递。

%LOG4PERL_LEVELS = 
(
    OFF =>$OFF, 
    FATAL =>$FATAL, 
    ERROR =>$ERROR, 
    WARN =>$WARN, 
    INFO =>$INFO, 
    DEBUG =>$DEBUG, 
    TRACE =>$TRACE, 
    ALL =>$ALL 
); 

$Log::Log4perl::Logger::APPENDER_BY_NAME{$appender_name}->threshold($LOG4PERL_LEVELS{$new_level}); 
相关问题