Mojo::Log - シンプルなロガー
使い方
use Mojo::Log;
# STDERRにロギング
my $log = Mojo::Log->new;
# ログの位置ともっとも低いログレベルのカスタマイズ
my $log = Mojo::Log->new(path => '/var/log/mojo.log', level => 'warn');
$log->debug('Not sure what is happening here');
$log->info('FYI: it happened again');
$log->warn('This might be a problem');
$log->error('Garden variety error');
$log->fatal('Boom');
説明
Mojo::LogはMojoプロジェクトのためのシンプルなロガーです。
イベント
Mojo::Logは次のイベントを発行することができます。
message
$log->on(message => sub {
my ($log, $level, @lines) = @_;
...
});
新しいメッセージがロギングされたときに、発行されます。
$log->on(message => sub {
my ($log, $level, @lines) = @_;
say "$level: ", @lines;
});
属性
Mojo::Logは次の属性を実装しています。
format
my $cb = $log->format;
$log = $log->format(sub {...});
ログメッセージをフォーマットするためのコールバック
$log->format(sub {
my ($time, $level, @lines) = @_;
return "[2018-11-08 14:20:13.77168] [28320] [info] I ♥ Mojolicious\n";
});
handle
my $handle = $log->handle; $log = $log->handle(IO::Handle->new);
デフォルトのmessageイベントによって利用されるファイルハンドル。 デフォルトで、pathかSTDERRがオープンされます。
history
my $history = $log->history; $log = $log->history(time, 'debug', 'That went wrong');
最後のいくつかのログメッセージ。
level
my $level = $log->level;
$log = $log->level('debug');
アクティブなログレベル。デフォルトはdebug, info, warn, errorとfatalです。 MOJO_LOG_LEVEL環境変数でこの値を オーバーライドすることができます。
max_history_size
my $size = $log->max_history_size; $log = $log->max_history_size(5);
historyの中に保存するログメッセージの最大数。 デフォルトは、10.
path
my $path = $log->path
$log = $log->path('/var/log/mojo.log');
handleによって利用されるログファイルのパス。
short
my $bool = $log->short; $log = $log->short($bool);
タイムスタンプを除いた短いログメッセージの生成。systemdに対応します。デフォルトはMOJO_LOG_SHORT環境変数の値です。
メソッド
Mojo::LogはMojo::EventEmitterからすべてのメソッドを継承しており、 次の新しいメソッドを実装しています。
append
$log->append("[2018-11-08 14:20:13.77168] [28320] [info] I ♥ Mojolicious\n");
handleにログメッセージを追加します。
debug
$log = $log->debug('You screwed up, but that is ok');
$log = $log->debug('All', 'cool');
$log = $log->debug(sub {...});
messageイベントを発生させ、デバッグ(debug)メッセージをログ出力する。
error
$log = $log->error('You really screwed up this time');
$log = $log->error('Wow', 'seriously');
$log = $log->error(sub {...});
messageイベントを発生させ、エラー(error)メッセージをログ出力する。
fatal
$log = $log->fatal('Its over...');
$log = $log->fatal('Bye', 'bye');
$log = $log->fatal(sub {...});
messageイベントを発生させ、致命的な(fatal)メッセージをログ出力する。
info
$log = $log->info('You are bad, but you prolly know already');
$log = $log->info('Ok', 'then');
$log = $log->info(sub {...});
messageイベントを発生させ、情報(info)メッセージをログ出力する。
is_level
my $bool = $log->is_level('debug');
ログレベルのチェック。
# 真
$log->level('debug')->is_level('debug');
$log->level('debug')->is_level('info');
# 偽
$log->level('info')->is_level('debug');
$log->level('fatal')->is_level('warn');
new
my $log = Mojo::Log->new;
新しいMojo::Logオブジェクトを生成し、デフォルトのロガーのmessageイベントを購読します。
warn
$log = $log->warn('Dont do that Dave...');
$log = $log->warn('No', 'really!');
警告(warn)メッセージをログ出力する。
参考
Mojolicious, Mojolicious::Guides, http://mojolicio.us.
(Mojolicious 8.12を反映。2019年5月22日)
Mojoliciousドキュメント日本語訳