固定フォーマットしかサポートしないけど、Plack::Middleware::AccessLogより軽い PM::AxsLogがLTSVフォーマット形式のログに対応しました

https://metacpan.org/release/KAZEBURO/Plack-Middleware-AxsLog-0.03

PM::AxsLogについては Perl 2012 advent calendar hacker に書いてます。

AxsLog - Yet Another AccessLog middleware - Perl Advent Calendar Japan 2012 Hacker Track

LTSVフォーマットについては次のページを参考にしましょう

Labeled Tab-separated Values

【今北産業】3分で分かるLTSV業界のまとめ【LTSV】 - naoyaのはてなダイアリー

使い方

ltsvオプションを有効にします。response_timeオプションも有効にしていると、takenという値が追加されます

use Plack::Builder;
builder {
    enable 'AxsLog', ltsv => 1, response_time => 1,
    $app;
}

出力されるログは次のようになります

host:127.0.0.1  user:-  time:[08/Feb/2013:14:17:53 +0900]   req:GET / HTTP/1.1  status:200  size:6  referer:-   ua:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17  taken:41
host:127.0.0.1  user:-  time:[08/Feb/2013:14:17:53 +0900]   req:GET /favicon.ico HTTP/1.1   status:200  size:6  referer:-   ua:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17  taken:36

目grepがcombinedに最適化されてると一瞬迷いそうです