squid でログフォーマットを指定する(時刻表示)






squid でログフォーマットを指定する方法は次の通り。

確認した squid のバージョンは 2.6.STABLE21 。
2.5.STABLE14 にはこのオプションは対応していない。

squid ではログのフォーマットを任意に指定することができる。

ログフォーマットを変更するメリットが一番あるのは、
ログに表示される時刻の部分。

デフォルトでは、ログの時刻表示がエポックからの累積秒数であり、
ログからイベントの時刻を判断することが困難。

時刻表示をローカルタイムに変更するには次のようにする。

/etc/squid/squid.conf にて、以下を変更。

設定項目 logformat の左から 3 項目目が時刻に関する指定。

エポックからの累積秒数: %ts.%03tu

ローカルタイム: %tl

logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt

変更後

logformat squid %tl %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt

最後に squid のプロセスを再起動して変更を反映。

/etc/init.d/squid restart

この設定により、次のようになりました。

変更前
1242038493.075  760 192.168.1.1 TCP_MISS/200 5290 GET
http://www.google.co.jp/ - DIRECT/66.249.89.104 text/html



変更後
11/May/2009:20:14:17 +0900  476 192.168.1.1 TCP_MISS/200 5306 GET
http://www.google.co.jp/ - DIRECT/66.249.89.147 text/html