如何在Log4perl中使用easy_init打印日志级别?

时间:2013-06-02 11:24:24

标签: perl log4perl

我非常想念有关Log4perl easy_init中每一行日志级别的信息。我正在运行一个大型迁移脚本,该脚本在某些特殊记录中失败,所以我需要grep WARNERROR s,但是需要INFO rmation上下文来修复它们。 / p>

使用此代码:

#!/usr/bin/perl
use strict; use warnings;
use Log::Log4perl qw(:easy);

Log::Log4perl->easy_init($INFO);

TRACE "bar";
DEBUG "baz";
INFO  "qux";
WARN  "quux";
ERROR "corge";
FATAL "grault";

现在,我得到了这个输出:

2013/06/02 13:08:48 qux
2013/06/02 13:08:48 quux
2013/06/02 13:08:48 corge
2013/06/02 13:08:48 grault

我不想在日志消息中添加此信息,因为它已经包含在我调用的日志函数中。

如何使用easy_init添加日志级别?我不想在一个相当小的脚本中使用配置文件(即使包含内联)初始化“常规”Log4perl,我喜欢easy_init,因为它清晰简洁。

1 个答案:

答案 0 :(得分:4)

easy_init还接受哈希作为参数,这些参数支持扩展配置,例如日志文件和布局。 %-5p将打印日志级别,左对齐为五个字符。

#!/usr/bin/perl
use strict; use warnings;
use Log::Log4perl qw(:easy);

Log::Log4perl->easy_init({
    level   => $INFO,
    layout  => '%d %-5p %m%n'
});

TRACE "bar";
DEBUG "baz";
INFO  "qux";
WARN  "quux";
ERROR "corge";
FATAL "grault";

现在输出

2013/06/02 13:08:56 INFO  qux
2013/06/02 13:08:56 WARN  quux
2013/06/02 13:08:56 ERROR corge
2013/06/02 13:08:56 FATAL grault

对于其他占位符,请查看Log4perl's PatternLayout documentation