1
我在寫一個Log4perl記錄器,並使用localtime()函數。問題是,每次我調用重新實例化log4perl記錄器的模塊(針對不同的文件)時,localtime()將會不同,當我想將它們全部放在一個文件中時,會創建多個不同的日誌文件。
想法?Perl日誌文件命名爲時間戳問題
use strict;
use warnings;
use Config::IniFiles;
use File::Copy;
use Cwd 'abs_path';
use Path::Class;
以上是我的代碼做use LIB::Paths
之前是使用Paths.pm的第一個文件。下面的代碼是Paths.pm文件。第一個文件調用use LIB::Paths
,第二個文件[可以添加,但我不想只把所有的代碼扔給你們]。 這使兩個單獨的時間戳。
my @now = localtime();
### May want to add something from the input name to the log file
our $timeStamp = sprintf("%04d_%02d%02d_%02d%02d%02d",
$now[5]+1900, $now[4]+1, $now[3],
$now[2], $now[1], $now[0]);
my $logFile = "$timeStamp.log";
our $fullLogPath = $output_dir . "/" . $log_dir . "/" . $logFile;
qx(touch $fullLogPath);
# write path and level to log configuration file
our $logLevel = $parms->val('MAIN','LogLevel');
open FILEHANDLE, '>', "$base_dir/CONFIG/log.conf";
print FILEHANDLE "log4perl.rootLogger=$logLevel, LOGFILE\n";
print FILEHANDLE "log4perl.appender.LOGFILE=Log::Log4perl::Appender::File\n";
print FILEHANDLE "log4perl.appender.LOGFILE.filename=$fullLogPath\n";
print FILEHANDLE "log4perl.appender.LOGFILE.mode=append\n";
print FILEHANDLE "log4perl.appender.LOGFILE.layout=PatternLayout\n";
print FILEHANDLE "log4perl.appender.LOGFILE.layout.ConversionPattern=%F{1} %8L %10p %n %m%n";
close (FILEHANDLE);
open SECONDFILE, '>', "$base_dir/CONFIG/log2.conf";
print SECONDFILE "log4perl.rootLogger=$logLevel, LOGFILE\n";
print SECONDFILE "log4perl.appender.LOGFILE=Log::Log4perl::Appender::File\n";
print SECONDFILE "log4perl.appender.LOGFILE.filename=$fullLogPath\n";
print SECONDFILE "log4perl.appender.LOGFILE.mode=append\n";
print SECONDFILE "log4perl.appender.LOGFILE.layout=PatternLayout\n";
print SECONDFILE "log4perl.appender.LOGFILE.layout.ConversionPattern=%F{1} %n %m%n";
close (SECONDFILE);
能否請您添加你的代碼! – smartmeta 2013-02-18 15:43:18
如何檢查目錄中是否存在日誌文件並重新使用它? – Birei 2013-02-18 21:50:54