У меня есть следующий файл конфигурации log4perl.conf, который я использую для нескольких сценариев. Он настроен на отображение сообщений со всех уровней журнала.Определение нескольких уровней журнала в Log4Perl
# Log4perl configuration file
log4perl.rootLogger = ALL, screen, file
log4perl.appender.screen = Log::Log4perl::Appender::Screen
log4perl.appender.screen.stderr = 0
log4perl.appender.screen.layout = PatternLayout
log4perl.appender.screen.layout.ConversionPattern = %d %p> %m%n
log4perl.appender.file = Log::Log4perl::Appender::File
log4perl.appender.file.filename = sub { my $script=$0; $script =~ s/(dev|test|prod)\/script/log/; $script =~ s/\.[^.]+$//; return "$script.log" }
log4perl.appender.file.mode = append
log4perl.appender.file.layout = PatternLayout
log4perl.appender.file.layout.ConversionPattern = %d %p> %m%n
Сценарии использовать этот код для инициализации:
use Log::Log4perl;
# Logger configuration
Log::Log4perl->init('/etc/log4perl.conf');
$logger = Log::Log4perl->get_logger();
Что является лучшим способом для настройки уровня журналирования без необходимости изменить файл конфигурации каждый раз, так как существует несколько сценариев с использованием тот же конфиг.
Могу ли я создать новый регистратор и использовать этот сценарий вместо корневого регистратора?
Вы хотите временно изменить уровень ведения журнала (как в небольшой части одного сценария) без внесения изменений в конфигурацию? Или вам нужен отдельный регистратор для каждого скрипта? – ThisSuitIsBlackNot
Я хотел бы иметь возможность временно изменить уровень ведения журнала для одного скрипта, не затрагивая другие скрипты. Не уверен, что это лучший способ. –