Log::Dispatchを使ってログ出力

Posted by hiroki.kana on December 6, 2009
このエントリーをはてなブックマークに追加

どんなアプリでもログ出力は必ずあるわけで。
というわけで、Log::Dispatchを使用してログ出力をしてみたいと思います。

まず、ログの設定ファイルを下記のように書きます。

dispatchers = file screen
file.class = Log::Dispatch::File
file.min_level = debug
file.filename = /tmp/hogehoge             
file.mode = append           
file.format = [%d] [%p] %m at %F line %L %n

screen.class = Log::Dispatch::Screen
screen.min_level = debug
screen.stderr = 1
screen.format = [%d] [%p] %m %n

dispatchersには使用するLogger(もとい出力先)を指定します。
今回はfileとscreenを作成しました。

<クラス>.classで指定しているのは出力先ごとのクラスを指定します。 min_levelには出力する最低限のログ、今回だと両方debugログ以上(つまりすべて)を出力するようにしています。 infoなどとするとinfoログ以上(debugログ以外)が出力されます。 これを使用するスクリプトは以下のようにします。 #!/usr/bin/perl use warnings; use strict; use Log::Dispatch::Config; use Data::Dumper; Log::Dispatch::Config->configure('./log.conf'); my $dispatcher = Log::Dispatch::Config->instance(); $dispatcher->debug('デバッグログ'); $dispatcher->info('インフォ'); $dispatcher->info('インフォ'); $dispatcher->info('インフォ'); my $hoge = {hoge => 'aaaa'}; $dispatcher->warning(Dumper($hoge)); $dispatcher->error('error errro'); $dispatcher->warning('warn warn'); ちなみに、screenにLog::Dispatch::Screenではなくて Log::Dispatch::Screen::Colorを指定するとログの種類によって色がつくようになります。 [ ![Log::Dispatch::Screen](/assets/hogehoge-300x217.jpg) ](http://blog.hirokikana.com/wp-content/uploads/2009/12/hogehoge.jpg) このエントリーをはてなブックマークに追加