今日は Log4perl を試してみました。
実験マシンはSolaris10です。
まずはCPANから最新版を取得します。Log4perl(1.28)
■インストールする
一応サーバーの管理者なのでroot権限でデフォルトで入れれますが、お試しなので、通常ユーザーのディレクトリ(ホーム直下にperl5をこしらえます)にインストールしました。
> gzcat Log-Log4perl-1.28.tar.gz | tar xvf -
> rm Log-Log4perl-1.28.tar.gz
> cd Log-Log4perl-1.28
> mkdir $HOME/perl5
> perl Makefile.PL PREFIX=$HOME/perl5 INSTALLMAN1DIR=$HOME/perl5/man/man1 INSTALLMAN3DIR=$HOME/perl5/man/man3
> make
> make test
> make install
これでインストールは完了です。
自分としてはいつもやるのですが、バージョン確認です。
> /bin/perl -I$HOME/perl5/lib -I$HOME/perl5/lib/site_perl -MLog::Log4perl -e 'print $Log::Log4perl::VERSION,"\n"'
1.28
インクルード・ディレクトリの指定は面倒なので、ログイン・シェルに以下を追加しました。
setenv PERL5LIB /export/home/ladm/perl5/lib:/export/home/ladm/perl5/lib/site_perl
※ちなみに、ログイン・シェルはtcshです。BournShellの場合は以下のようになります。
PERL5LIB=/export/home/ladm/perl5/lib:/export/home/ladm/perl5/lib/site_perl; export PERL5LIB
> /bin/perl -MLog::Log4perl -e 'print $Log::Log4perl::VERSION,"\n"'
1.28
■サンプルを試す(1)
定義ファイル不要で、標準出力にメッセージを出力します。
- log-sample01.pl -
- #!/bin/perl
- use strict;
- use Log::Log4perl qw(:easy);
- #
- Log::Log4perl->easy_init($INFO);
- #
- DEBUG "このメッセージはどこにもでません。";
- INFO "これは情報メッセージです。";
- WARN "これは警告メッセージです。";
- ERROR "これは障害メッセージです。";
- FATAL "これは致命的なメッセージです。";
- exit 0;
> ./log-sample01.pl
2010/05/28 00:39:53 これは情報メッセージです。
2010/05/28 00:39:53 これは警告メッセージです。
2010/05/28 00:39:53 これは障害メッセージです。
2010/05/28 00:39:53 これは致命的なメッセージです。
★DEBUGを出したい場合は、5行目の$INFOを$DEBUGにすればよい(^^♪
■サンプルを試す(2)
定義ファイルを使って、ログ・ファイルにメッセージを出力します。
- log-sample02.pl -
- #!/bin/perl
- use strict;
- use Log::Log4perl;
- #
- Log::Log4perl::init('/tmp/log4perl.conf');
- my $logger = Log::Log4perl->get_logger('hoge.foo.bar');
- #
- $logger->debug('これはデバッグメッセージです。');
- $logger->info('これは情報メッセージです。');
- $logger->warn('これは警告メッセージです。');
- $logger->error('これは障害メッセージです。');
- $logger->fatal('これは致命的なメッセージです。');
- exit 0;
- /tmp/log4perl.conf -(定義ファイル)
デバッグ以上をログ・ファイルに、情報以上を標準出力へ
- log4perl.rootLogger=DEBUG, LOGFILE
- log4perl.logger.hoge.foo.bar=INFO, OUT
- #
- log4perl.appender.LOGFILE=Log::Log4perl::Appender::File
- log4perl.appender.LOGFILE.filename=sample02.log
- log4perl.appender.LOGFILE.mode=append
- log4perl.appender.LOGFILE.layout=PatternLayout
- log4perl.appender.LOGFILE.layout.ConversionPattern=%d %p %c - %m%n
- #
- log4perl.appender.OUT=Log::Log4perl::Appender::Screen
- log4perl.appender.OUT.layout=PatternLayout
- log4perl.appender.OUT.layout.ConversionPattern=%d %p %c - %m%n
とりあえず、今日はこのあたりで。