
Gungho::Log::Dispatch.ja - Gunghoログモジュール

# in your Gungho config
log:
module: Dispatch
config:
logs:
- module: Screen
min_level: debug
name: stderr
stderr: 1
- module: File
min_level: info
filename: /path/tofilename
mode: append
# ... or somewhere in your code ..
use Gungho::Log::Dispatch;
my $log = Gungho::Log::Dispatch->new();
$log->setup($c, {
logs => [
{ module => 'Screen',
min_level => 'debug',
name => 'stderr',
stderr => 1
},
{ module => 'File',
min_level => 'info',
filename => '/path/to/filename'
mode => 'append'
}
]
});

Gungho用ログモジュールです。Log::Dispatchを使ってフレキシブルなログを可能に します。

log.module 項目にDispatchと指定し、log.config項目に以下のように Log::Dispatchの小クラスの設定を記述してください:
log:
module: Dispatch
config:
logs:
- module: File
min_level: info
filename: /path/to/filename
name: logfile
Log::Dispatchクラスはmodule項目で指定された値にLog::Dispatch::という文字列が 追加されたものが使用されます。module以外の内容は全てそのクラスのコンストラクタ に渡されます。
log.config.logsには複数のログ指定が可能です。リストに追加するだけでその分の Log::Dispatchオブジェクトが作成されます。
詳しい設定方法はLog::Dispatchを参照してください。
作成したログはGungho内で$c->logからアクセス可能です。使用する場合は 以下のようにするとよいでしょう:
$c->log->debug("This is a debug message");
$c->log->emergency("This is an emergency message");

オブジェクトを初期化します。
上記それぞれのログレベルに出力します。

もしGunghoをマルチプロセス間で動作させていて、なおかつ同じログファイルを 指定したいような場合があった場合はLog::Dispatch::File::Lockedは使用しないで ください。
File::Lockedはflock() を使ってファイルをロックし続けるので最初にファイルに ロックを書けられたプロセスだけが動く結果となります。
