-1

Log4perl のすべての行のログ レベルに関する情報が欠けていますeasy_init。いくつかの特別なレコードで失敗する大規模な移行スクリプトを実行しているため、WARNings とERRORsを grep する必要がありますが、INFOそれらを修正するには rmation コンテキストが必要です。

このコードの使用:

#!/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

4

1 に答える 1

5

easy_initまた、ログ ファイルやレイアウトなどの拡張構成を可能にするパラメーターとしてハッシュも受け入れます。%-5pは、ログ レベルを左揃えで 5 文字に出力します。

#!/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 の PatternLayout ドキュメントを参照してください。

于 2013-06-02T11:24:24.277 に答える