2
私は、複数のスクリプトに使用している以下の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();
使用して複数のスクリプトがあるので、設定ファイルを毎回変更することなく、ログレベルを調整するための最良の方法は何ですか同じ設定。
新しいロガーを作成し、そのスクリプトでルートロガーの代わりにそのロガーを使用できますか?
設定を変更せずに一時的にログレベルを変更したいとしますか(1つのスクリプトの小さな部分など)あるいは、スクリプトごとに別々のロガーが必要ですか? – ThisSuitIsBlackNot
他のスクリプトに影響を与えずに、1つのスクリプトのログレベルを一時的に変更したいと思っています。それを達成するための最良の方法は不明です。 –