log4perl을 사용하고 있으며 모든 치명적인 이벤트를 별도의 파일에 기록하려고합니다. 여기FATAL 이벤트를 기록하여 log4perl로 파일을 분리하는 방법
#!/usr/bin/perl
use strict;
use warnings FATAL => 'all';
use Log::Log4perl qw(get_logger);
Log::Log4perl::init('log4perl.conf');
my $l_aa = get_logger('AA');
$l_aa->fatal('fatal');
my $l_bb = get_logger('BB');
$l_bb->info('info');
그리고 내 설정 파일입니다 :이 설정을 사용하여 파일 log4perl_fatal.log
은 FATAL 수준의 이벤트를 얻을 것이다 기대하고 있습니다
## What to log
log4perl.logger = FATAL, FatalLog
log4perl.logger.BB = INFO, MainLog
## Logger MainLog
log4perl.appender.MainLog = Log::Log4perl::Appender::File
log4perl.appender.MainLog.filename = log4perl_main.log
log4perl.appender.MainLog.layout = PatternLayout
log4perl.appender.MainLog.layout.ConversionPattern = \
[%d{yyyy-MM-dd HH:mm:ss}] %p - %c - %m%n
## Logger FatalLog
log4perl.appender.FatalLog = Log::Log4perl::Appender::File
log4perl.appender.FatalLog.filename = log4perl_fatal.log
log4perl.appender.FatalLog.layout = PatternLayout
log4perl.appender.FatalLog.layout.ConversionPattern = \
[%d{yyyy-MM-dd HH:mm:ss}] %p - %c - %m%n
이
여기 내 스크립트입니다.
$ tail -f *log
==> log4perl_fatal.log <==
[2014-04-13 08:41:22] FATAL - AA - fatal
[2014-04-13 08:41:22] INFO - BB - info
==> log4perl_main.log <==
[2014-04-13 08:41:22] INFO - BB - info
이유는 log4perl_fatal.log
에 INFO 레벨의 이벤트를 받고 있어요 :하지만 여기에 내가 스크립트를 실행 한 후 얻을 무엇인가?
어떻게 치명적인 이벤트 만 별도의 파일에 기록 할 수 있습니까?
추신 : GitHub repo이 스크립트는 & 구성입니다. 그렇지 않으면
log4perl.logger.AA = FATAL, FatalLog
에서, FatalLog가 대신 고립의, 포괄 모두 로거된다 :
log4perl.logger = FATAL, FatalLog
당신이 필요로하는 것은 다음과 같다 :
매우 감사를! 나는 이해하기 시작했다. 그러나 나는 아직도 질문을 가지고있다. 승인. 그래서 제 설정에서'FatalLog'는 모든 로거를 잡아 먹는 것입니다. 그러나 'INFO'수준의 이벤트를 기록하는 이유는 무엇입니까? – bessarabov