Моя цель - записать сообщения «debug» (и последующие уровни: info, warning, fatal, ...) в файл, но только «warnings» / fatal / error на экран.Оба одновременно.
Я пробовал с easy_init ( "стелс-логгинг" ):
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 ...
, все предупреждения и сообщения об ошибках выводятся на экран и в файл.
Может кто-нибудь подсказать мне, как это сделать (если возможно))?Нужно ли уточнить?