Apacheのアクセスログ
毎週自動でApacheのアクセスログを集計しています。フロントエンドが2つあって、そこで外部からのhttp接続を処理しているので、この2つのフロントエンドで動作しているApacheのログを日付でソートしてから集計にかけていますが、先々週の処理が妙なエラーで失敗しているのを昨日発見。
Traceback (most recent call last): File "./sort_clf.py", line 23, in <module> lines.sort(CompDateCLF) File "./mm.py", line 8, in CompDateCLF epoc_time1=time.mktime(time.strptime(date_string1,"%d/%b/%Y:%H:%M:%S")) File "/usr/local/lib/python2.5/_strptime.py", line 310, in strptime (data_string, format)) ValueError: time data did not match format: data=03/ fmt=%d/%b/%Y:%H:%M:%S
ログの日付を解析して順序を決めるpythonプログラムでエラー。日付のフォーマットがおかしいよっていっています。早速場所を特定するとこんなログの行がありました。
202.XXX.XXX.XXX - - [03/ "GET /images/text_mark_y.gif HTTP/1.1" 200 78 "http://www.hogehoge.com/jpn/hoge/guidebook/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"
日付のところ、"03/"だけになってる。本来ならここは続けて月、年と入るはずのところ。
03/Apr/2008:00:05:15
とかね。
Apacheのログでこんな妙なことになってるのを見るのは初めてです。