Как добавить собственный суффикс в файл журнала, который вращается в Perl с помощью модуля log4perl?
Приведенный ниже код: Когда размер файла журнала превышает 5 МБ, создайте новый файл журнала с именем logfile.log.1
, logfile.log.2
, так далее.
Но как мне создать собственное имя файла журнала как logfile_20140530_15_31.log
используя модуль log4perl?
my $log_conf = "
log4perl.rootLogger = DEBUG, LOG1
log4perl.appender.LOG1 = Log::Dispatch::FileRotate
log4perl.appender.LOG1.filename = $logfile.log
log4perl.appender.LOG1.mode = append
log4perl.appender.LOG1.autoflush = 1
log4perl.appender.LOG1.size = 1024000
log4perl.appender.LOG1.max = 5
log4perl.appender.LOG1.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.LOG1.layout.ConversionPattern = \%d{yyyy-MM-dd HH:mm:ss}\%P|\%p|\%m|\%n
";
Log::Log4perl::init(\$log_conf);
my $logger = Log::Log4perl->get_logger();
$logger->info("error ");
1 ответ
Из документации Log::Dispatch::FileRotate:
SYNOPSIS
use Log::Dispatch::FileRotate;
my $file = Log::Dispatch::FileRotate->new( name => 'file1',
min_level => 'info',
filename => 'Somefile.log',
mode => 'append' ,
size => 10,
max => 6,
);
# or for a time based rotation
my $file = Log::Dispatch::FileRotate->new( name => 'file1',
min_level => 'info',
filename => 'Somefile.log',
mode => 'append' ,
TZ => 'AEDT',
DatePattern => 'yyyy-dd-HH',
);
$file->log( level => 'info', message => "your comment\n" );
Возможно, вы могли бы заменить size
& max
с TZ
& DatePattern
,