Log::LTSV::Instance 作った
Log-LTSV-Instance-0.01 - LTSV logger - metacpan.org リリースしました。
my $logger = Log::LTSV::Instance->new( logger => sub { print @_ }, level => 'DEBUG', ); $logger->crit(msg => 'hungup'); # time:2015-03-06T22:27:40 log_level:CRITICAL msg:hungup
PODにある通りだけども、こんな感じで使えます。
my $logger = Log::LTSV::Instance->new( logfile => $filename, );
見たくすると、 File::RotateLogs で動きます。
あー全部のログにuser_id(session_id)付けたいわーとかいう人はsticksを使いましょう。
$logger->sticks( session_id => sub { $c->session_id } ); $logger->crit(msg => 'hungup'); # time:2015-03-06T22:27:40 log_level:CRITICAL session_id:1 msg:hungup $logger->info(msg => 'hungup'); # time:2015-03-06T22:27:40 log_level:INFO session_id:1 msg:hungup
こんな感じにsticksというメソッドを使うことで、必ず吐き出されるログも入れることができるので、ご活用下さい。
ちなみに、HASHREF や ARRAYREF、Object を渡したとしてもよしなに AutoDump してくれますので、ご安心下さい。
my $obj = bless { cval => 1 }, 'TEST'; $logger->crit( class => $obj, hashref => { hval => 1 }, arrayref => [ 'a', 'b' ], ); # time:2015-03-07T22:51:19 log_level:CRITICAL class.cval:1 hashref.hval:1 arrayref.0:a arrayref.1:b
TODO
- AutoDumpしていいの?
- caller情報を自動で吐き出すべき?
どうしよっかなーって思ったけど、とりあえずバージョン1を上げたのでした!