В FAQ для Log4perl объясняется, как написать файл конфигурации для использования отдельных файлов для ОШИБКИ и ИНФО.
Это прекрасно работает для одного сценария или если вы хотите смешатьнесколько сценариев ERROR и INFO в одном журнале ERROR и INFO.
Вопрос
Мне бы очень хотелось, чтобы каждый сценарий имел свои собственные файлы ERROR и INFO, и что явсе еще могут просто использовать
$logger->info()
$logger->error()
Правильно ли я сделал log.conf
правильно?
И как мне инициировать Log4perl в каждом скрипте?
учетная запись.pl
use Log::Log4perl;
Log::Log4perl::init('log.conf');
my $logger = Log::Log4perl->get_logger('????');
log.conf
log4perl.logger.account = INFO, AccountErrorLogFile, AccountInfoLogFile, AccountInfoLogFile, SystemErrorLogFile, testScreen
# Filter to match level ERROR
log4perl.filter.MatchError = Log::Log4perl::Filter::LevelMatch
log4perl.filter.MatchError.LevelToMatch = ERROR
log4perl.filter.MatchError.AcceptOnMatch = true
# Filter to match level INFO
log4perl.filter.MatchInfo = Log::Log4perl::Filter::LevelMatch
log4perl.filter.MatchInfo.LevelToMatch = INFO
log4perl.filter.MatchInfo.AcceptOnMatch = true
# Error appender
log4perl.appender.AccountErrorLogFile = Log::Log4perl::Appender::File
log4perl.appender.AccountErrorLogFile.filename = /logs/error--account-pl.log
log4perl.appender.AccountErrorLogFile.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.AccountErrorLogFile.layout.ConversionPattern = %d [%3L] %m%n
log4perl.appender.AccountErrorLogFile.Filter = MatchError
# Info appender
log4perl.appender.AccountInfoLogFile = Log::Log4perl::Appender::File
log4perl.appender.AccountInfoLogFile.filename = /logs/info--account-pl.log
log4perl.appender.AccountInfoLogFile.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.AccountInfoLogFile.layout.ConversionPattern = %d [%3L] %m%n
log4perl.appender.AccountInfoLogFile.Filter = MatchInfo
# Error appender
log4perl.appender.SystemErrorLogFile = Log::Log4perl::Appender::File
log4perl.appender.SystemErrorLogFile.filename = /logs/error--system-pl.log
log4perl.appender.SystemErrorLogFile.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.SystemErrorLogFile.layout.ConversionPattern = %d [%3L] %m%n
log4perl.appender.SystemErrorLogFile.Filter = MatchError
# Info appender
log4perl.appender.SystemInfoLogFile = Log::Log4perl::Appender::File
log4perl.appender.SystemInfoLogFile.filename = /logs/info--system-pl.log
log4perl.appender.SystemInfoLogFile.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.SystemInfoLogFile.layout.ConversionPattern = %d [%3L] %m%n
log4perl.appender.SystemInfoLogFile.Filter = MatchInfo
# Development Appender
log4perl.appender.testScreen = Log::Log4perl::Appender::Screen
log4perl.appender.testScreen.stderr = 0
log4perl.appender.testScreen.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.testScreen.layout.ConversionPattern = %-5p [%3L] %m%n