end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転します

Log::Log4perl

こういうログ出力モジュールがあることを知りませんでした。

http://search.cpan.org/search?query=log4perl&mode=all
http://d.hatena.ne.jp/kidd-number5/20060105

ちなみにperl から syslog へ出力する Sys::Syslog もあるらしい。

以下、使用方法。

perl

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