Webコンサルタントの愚痴とアジャイル,生産性向上,Trac,オープンソースなどの与太話
相も変わらずCatalyst。
Search.cpan.orgのRSSフィードを定期的に見ていて、Catalyst関連のモジュールが出てくると一通り試してみている。
今日はとりあえずCatalyst::Log::Log4perlってのを試した。これはCatalystの中から簡単にLog4Perlを呼ぶためのモジュールである。
Webアプリの場合特に障害切り分けや開発におけるログの重要性が高いから予めモジュール内にログ出力ロジックを組み込むのは当然。しかもある程度レベル分けをしておく必要がある。なので全部print STDERR とか、自前でファイルを開いて書き込むだとかはナンセンス。
インストールはいつものように
perl -MCPAN -e shell cpan> install Catalyst-Log-Log4perl
後は、Catalystアプリの最上位クラス(Hoge)で
Hoge->log(Catalyst::Log::Log4perl->new( "/foo/bar/log4perl.conf"));
とすると、Catalyst->logのインスタンスはLog4Perlのインスタンスに置き換わる。その後は
$c->log->debug
$c->log->info
$c->log->warn
$c->log->fatal
等を使うことが出来る。またLog4Perlのインスタンス生成の際の設定ファイルで実際にどのレベルまでログを取るのか、ログの出力先を何にするのか設定が出来るから便利だ。
以下はDEBUG以下のレベルを全てファイルに吐き出す場合のLog4Perlの設定である。
log4perl.rootLogger=DEBUG, LOGFILE log4perl.appender.LOGFILE=Log::Log4perl::Appender::File log4perl.appender.LOGFILE.filename=/tmp/myerrs.log log4perl.appender.LOGFILE.mode=append log4perl.appender.LOGFILE.layout=PatternLayout log4perl.appender.LOGFILE.layout.ConversionPattern= [%r] %F %L %c - %m%n
そんなかんぢ。
よろしければ5段階評価で該当する☆をクリックしてください。
コメントはありません。是非コメントしてください。