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のログでこんな妙なことになってるのを見るのは初めてです。