名前

Mojo::Log - シンプルなロガー

Mojo::LogMojoプロジェクトのためのシンプルなロガーです。

使い方

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は次のイベントを発行することができます。

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イベントによって利用されるファイルハンドル。 デフォルトで、pathSTDERRがオープンされます。

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, errorfatalです。 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::LogMojo::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日)