固定フォーマットしかサポートしないけど、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フォーマットについては次のページを参考にしましょう
【今北産業】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に最適化されてると一瞬迷いそうです