J'ai le fichier de configuration log4perl.conf suivant que j'utilise pour plusieurs scripts. Il est configuré pour afficher les messages de tous les niveaux de journal.Définition de plusieurs niveaux de consignation dans 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
Les scripts utilisent cet extrait de code pour l'initialiser:
use Log::Log4perl;
# Logger configuration
Log::Log4perl->init('/etc/log4perl.conf');
$logger = Log::Log4perl->get_logger();
Quelle est la meilleure façon de régler le niveau d'enregistrement sans avoir à modifier le fichier de configuration à chaque fois car il y a plusieurs scripts en utilisant le même config. Puis-je créer un nouvel enregistreur et demander au script d'utiliser celui-ci à la place de l'enregistreur racine?
Voulez-vous dire que vous voulez changer temporairement le niveau de journalisation (comme dans une petite section d'un seul script) sans apporter de modifications à la configuration? Ou voulez-vous un enregistreur séparé pour chaque script? – ThisSuitIsBlackNot
J'aimerais pouvoir changer temporairement le niveau de journalisation pour un seul script sans affecter les autres scripts. Pas sûr du meilleur moyen d'accomplir cela. –