Моя цель состоит в том, чтобы регистрировать «отладочные» сообщения (и последующие уровни: информация, предупреждение, фатальный...) в файл, но только «предупреждения»/фатальные/ошибки на экране. Оба одновременно.
Я попробовал с easy_init ("stealth logging"):
Log::Log4perl->easy_init(
{ level => $DEBUG, file => ":utf8> ./log_" . basename($0) . "_.log" },
{ level => $WARN, file => 'STDOUT' },
);
... НО level
второго определения перезаписывает общий уровень журнала.
if (false){
WARN "some bad thing"; # print this to the screen AND to the file
}else{
do_something;
DEBUG "doing something"; # print this just to the file
if (bla){WARN "another bad thing"}
}
В этом случае предупреждение выводится на экран и файл правильно, НО сообщение «DEBUG» не будет напечатано (perl 5.26)
Если поставить строку { level => $DEBUG ...
после строки {level => $WARN ...
, то все предупреждающие и отладочные сообщения будут выводиться на экран и в файл.
Может кто-нибудь, пожалуйста, направьте меня, как это сделать (если это вообще возможно)? Мне нужно уточнить?