こういうログ出力モジュールがあることを知りませんでした。
http://search.cpan.org/search?query=log4perl&mode=all
http://d.hatena.ne.jp/kidd-number5/20060105
ちなみにperl から syslog へ出力する Sys::Syslog もあるらしい。
以下、使用方法。
package WebApp; use strict; use utf8; use Log::Log4perl; use Sing::Config; use Data::Dumper; my $CONF = WebApp::Config->get_config(); #load yaml file Log::Log4perl::init($CONF->{log}); my $LOGGER = Log::Log4perl::get_logger("rootLogger"); sub debug { my ($self,@msg) = @_; $LOGGER->debug(@msg); } sub error { my ($self,@msg) = @_; $LOGGER->error(@msg); } sub warn { my ($self,@msg) = @_; $LOGGER->warn(@msg); } sub info { my ($self,@msg) = @_; $LOGGER->info(@msg); }
設定ファイル(yaml)
log: log4perl.rootLogger: INFO, LOGFILE log4perl.appender.LOGFILE: Log::Log4perl::Appender::File log4perl.appender.LOGFILE.filename: /var/log/web_app.log log4perl.appender.LOGFILE.mode: append log4perl.appender.LOGFILE.layout: PatternLayout log4perl.appender.LOGFILE.layout.ConversionPattern: %d [%p] %m %n