その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

Released Log::Minimal::Object

皆さん,Perlのアプリケーションのログを出力したい時はLog::Minimalをご利用のことと存じます.非常に便利でグレートなモジュールなので僕も毎度使っております.


さて,そのLog::Minimalですが,ログの出力をカスタムしたい時には$Log::Minimal::COLOR$Log::Minimal::TRACE_LEVELなどといったLog::Minimalの持っている変数をいじってスコープごとにゴニョゴニョ〜〜みたいな感じにやるわけですが,ある程度複雑な条件に基いてログをカスタムしたい時 (例えばローカルからのアクセスの時だけ特殊なフォーマットでログを吐きたい,だとか) なんかは記述量が増えたりそのロジックが煩雑になったりして,ログ出力の為の記述が本質的なロジックの記述を食ってしまう場合があったりします.


そうした背景からこの度リリースしたのがLog::Minimal::Objectです.
https://github.com/moznion/Log-Minimal-Object
https://metacpan.org/pod/Log::Minimal::Object

Log::Minimal::ObjectはLog::Minimalに対するOOPインタフェースを提供する簡単なラッパーです.
使い方はドキュメントを読んでもらうとして,その特徴はインスタンスごとに独立して出力のカスタマイズ出来るという点にあります.あらかじめ個別に設定したロガーインスタンスを作っておいて,条件に基いて出力するロガーを切り替えてやる,という使い方が出来ると便利なのではないかと思ったのが主な動機です.
また,副次的な感じではありますが,ログを出力するメソッドをインスタンスごとの粒度で乗っ取る,みたいな使い方もできるのでテストの時などに便利なのではないかと思っています.


まあ,ある程度の規模感のアプリケーションだと独自でロガークラスを作ってそいつに仕事をさせる事も多いと思いますが,こうしたカジュアルに使えるモジュールがあっても良いのではないか,と思って作った次第です.ご利用下さい.