The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

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

SYNOPSIS

  # 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'
      }
    ]
  });

DESCRIPTION

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

CONFIGURATION

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");

METHODS

setup($c, \%config)

オブジェクトを初期化します。

debug

info

notice

warning

error

critical

alert

emergency

上記それぞれのログレベルに出力します。

CAVEATS

もしGunghoをマルチプロセス間で動作させていて、なおかつ同じログファイルを 指定したいような場合があった場合はLog::Dispatch::File::Lockedは使用しないで ください。

File::Lockedはflock() を使ってファイルをロックし続けるので最初にファイルに ロックを書けられたプロセスだけが動く結果となります。

SEE ALSO

Log::Dispatch