運用におけるエラーログの重要性もしくはLog::Minimalってモジュール書いた話」で書いたLog::Minimalを、Plackと組み合わせたときにさらに便利になるMiddlewareを書きました。

ここで入手可能になるはず
http://search.cpan.org/dist/Plack-Middleware-Log-Minimal/

試しにログを吐くだけのアプリケーションを作ってリクエストをすると

pmlogminimal.png

こんな風に、ログに色をつけてくれるのと、REQUEST_URIも付加してくれます。ただし色が付くのは開発環境(plackup -E productionとかしない場合)です。

Log::MinimalとPlack::Middleware::Log::Minimalの最大の特徴として粗結合+グルーとなるミドルウェアという組み合わせが挙げられます。Log::Minimal自体は特に依存がないので、Web以外のcronなどでも普通に動きます。Plack::Middlewareを使った場合はMiddlewareがログを書き出す部分をフックし、付加情報を自動で付け、最適な方法で書き出します。具体的には$envのREQUEST_URIをログに追加し、psgi.errorsに対してログを書き出すように変更しています。さらにcronやjobqueue用のフレームワークがLog::Minimalをサポートすればそれぞれの環境にあった方法でログを出力することができると思われます。

サンプルに使ったpsgiファイル

use Plack::Builder;
use Log::Minimal;

builder {
  enable 'Log::Minimal';
  sub {
     debugf("debug");
     infof("info");
     warnf("warn");
     critf("crit");
     [200,['Content-Type'=>'text/plain'],['OK']];
  }
};

簡単で便利なので気軽にログを出すようにするといいと思います。

このブログ記事について

このページは、Masahiro Naganoが2010年11月 5日 15:17に書いたブログ記事です。

ひとつ前のブログ記事は「Contextの生成・破棄を任意のタイミングで制御可能にする Scope::Container(仮)」です。

次のブログ記事は「ログレベルの使い分け方/コミュニケーション手段としてのログ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 4.27-ja