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日)