LTSV 用のログ監視 Perl スクリプト

LTSV フォーマットを見やすくするワンライナー (バッファリング無効付き) を書いた。

perl -F'\t' -nale '$|=1; foreach my $e (@F){ print "$e"; } print "-" x 40;'

LTSV 形式のログをパースする

cat /var/log/nginx/access_log | perl -F'\t' -nale 'foreach my $e (@F){ print "$e"; } print "-" x 40;'

remote_ip:192.168.0.1
user:-
srv_tm:17/Apr/2013:23:11:59 +0900
request:GET /hoge HTTP/1.1
status:200
size:10501
referer:-
ua:Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
reqtime:0.066
apptime:0.030
forward:-
----------------------------------------

欲しいデータのみに絞る場合は、tail | perl | grep する。

tail -f /var/log/nginx/access_log | perl -F'\t' -nale '$|=1; foreach my $e (@F){ print "$e"; } print "-" x 40;' | grep --line-buffered "request"

request:GET /hoge HTTP/1.1
request:GET /fuga HTTP/1.1