0

Log4perl ロガーに単純なファイル アペンダを追加および削除しようとしていますが、警告が生成され、何も出力されません。これが私のコードです:

use strict;
use warnings;
use Log::Log4perl qw(:easy);
Log::Log4perl->easy_init($DEBUG);
use Log::Log4perl::Appender::File;

my $app = Log::Log4perl::Appender::File->new(
    filename  => "C:/users/my name/Desktop/someFile.txt",
    mode      => 'clobber',
    utf8      => 1,
);
# print "appender name is " . $app->name();
my $logger = get_logger();
$logger->add_appender($app);
INFO('info');
$logger->remove_appender($app->name);

ファイル「someFile.txt」が作成されますが、空です。生成される警告は次のとおりです。

Odd number of elements in hash assignment at C:/strawberry/perl/site/lib/Log/Log4perl/Appender/File.pm line 223.
Use of uninitialized value in print at C:/strawberry/perl/site/lib/Log/Log4perl/Appender/File.pm line 245.

タイムスタンプ付きの「info」もコマンドラインに出力されます。誰が私が作っているエラーを見ることができますか?

4

1 に答える 1

1

アペンダーが必要なものであると確信していますか? その場合、新しいLog::Log4perl::Appender::Fileオブジェクトを直接作成するべきではありません。オブジェクトを作成し、必要なLog::Log4perl::Appenderアペンダーのタイプのクラスをコンストラクターの最初のパラメーターとして渡します。このような:

my $app = Log::Log4perl::Appender->new(
    'Log::Log4perl::Appender::File',
    filename  => 'C:/users/my name/Desktop/someFile.txt',
    mode      => 'clobber',
    utf8      => 1,
);
于 2013-01-10T20:30:32.903 に答える