log4perl несколько конфигураций в одном файле conf

Могу ли я указать несколько конфигураций в одном файле conf?

я указал что-то вроде этого

log4perl.category.xml_script                = DEBUG, LOGFILE_XML_SCRIPT
log4perl.category.xml_script.XML_script_lib = DEBUG, LOGFILE_SCRIPT_LIB
log4perl.category.addrdec2xml               = DEBUG, LOGFILE_ADDRDEC2XML
log4perl.oneMessagePerAppender              = 1

xml_script и addrdec2xml — это два независимых скрипта.

log4perl.appender.LOGFILE_XML_SCRIPT                           = Log::Log4perl::Appender::File
log4perl.appender.LOGFILE_XML_SCRIPT.filename                  = xml_script.log
log4perl.appender.LOGFILE_XML_SCRIPT.mode                      = overwrite
log4perl.appender.LOGFILE_XML_SCRIPT.layout                    = Log::Log4perl::Layout::PatternLayout
log4perl.appender.LOGFILE_XML_SCRIPT.layout.ConversionPattern  = %p %F(%L): [%c] %m%n

log4perl.appender.LOGFILE_SCRIPT_LIB                           = Log::Log4perl::Appender::File
log4perl.appender.LOGFILE_SCRIPT_LIB.filename                  = xml_script_lib.log
log4perl.appender.LOGFILE_SCRIPT_LIB.mode                      = overwrite
log4perl.appender.LOGFILE_SCRIPT_LIB.layout                    = Log::Log4perl::Layout::PatternLayout
log4perl.appender.LOGFILE_SCRIPT_LIB.layout.ConversionPattern  = %p %F(%L): [%c] %m%n

log4perl.appender.LOGFILE_ADDRDEC2XML                          = Log::Log4perl::Appender::File
log4perl.appender.LOGFILE_ADDRDEC2XML.filename                 = addrdec2xml.log
log4perl.appender.LOGFILE_ADDRDEC2XML.mode                     = overwrite
log4perl.appender.LOGFILE_ADDRDEC2XML.layout                   = Log::Log4perl::Layout::PatternLayout
log4perl.appender.LOGFILE_ADDRDEC2XML.layout.ConversionPattern = %p %F(%L): [%c]%n%m%n

Когда я запускаю сценарии независимо, другой файл журнала очищается. :( Любые предложения приветствуются. Я не хочу иметь несколько conf, поэтому, пожалуйста, предложите решение с одним файлом conf.


person justrajdeep    schedule 10.12.2013    source источник
comment
Вы можете использовать JSON или YAML для конфигураций   -  person    schedule 10.12.2013
comment
Речь идет не о получении вывода, а о регистрации уровней отладки. Я не получил вашего ответа. Не могли бы вы уточнить.   -  person justrajdeep    schedule 11.12.2013


Ответы (1)


Измените режим на добавление и убедитесь, что вы собираетесь вызывать регистратор следующим образом:

my $logger = get_logger('xml_script');

my $logger = get_logger('addrdec2xml');
person user1126070    schedule 10.12.2013
comment
Вы изменили режим на добавление? - person user1126070; 11.12.2013
comment
Я не хочу добавлять. Это превосходит цель. Журналы должны регистрироваться только тогда, когда вызываются соответствующие регистраторы, независимо от того, что определено в конфигурации. и когда они регистрируются, они должны не добавлять, а перезаписывать - person justrajdeep; 12.12.2013
comment
Когда я запускаю сценарии независимо, другой файл журнала очищается. потому что режим перезаписывается. Регистраторы инициализируются, и все файлы журналов усекаются. Вы должны копировать конфигурацию или создавать приложения на лету. - person user1126070; 12.12.2013