Log4perl странные ошибки, используя файл appender
Я пытаюсь добавить и удалить простой файловый appender в регистраторе 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" с меткой времени также выводится в командной строке. Кто-нибудь может увидеть, какую ошибку я делаю?
1 ответ
Решение
Вы уверены, что аппендер - это то, что вы хотите? Если это так, то вы не должны создавать новый Log::Log4perl::Appender::File
объект напрямую - вы создаете Log::Log4perl::Appender
Объект и передать класс для типа appender, который вы хотите в качестве первого параметра в конструктор. Как это:
my $app = Log::Log4perl::Appender->new(
'Log::Log4perl::Appender::File',
filename => 'C:/users/my name/Desktop/someFile.txt',
mode => 'clobber',
utf8 => 1,
);