Журналы представляют собой ASCII-файл с одной строкой на запрос, со следующими столбцами:
- Хост, выполняющий запрос.
- Не используется
- Имя хостаесли возможно, в противном случае - Интернет-адрес, если имя не удалось найти.
- Метка времени в формате «ДЕНЬ МОН ДД ЧЧ: ММ: СС ГГГГ», где ДЕНЬ - день недели, МОН - этоназвание месяца, DD - день месяца, HH: MM: SS - время дня с использованием 24-часовых часов, а YYYY - год.Часовой пояс -0400.
- Запрос указан в кавычках.
- Код ответа HTTP.
- Байт в ответе.
Таким образом, строки, подобные этой, должны быть проанализированы:
202.32.92.47 - - [01 / Jun / 1995: 00: 00: 59 -0600] "GET"run / ~ scottp / publish.html "200 271
ix-or7-27.ix.netcom.com - Джон Доу [01 / Jun / 1995: 00: 02: 51 -0600]" GET / ~ladd / ostriches.html "200 205908
И это следует игнорировать:
maz3.maz.net - - [11 / Oa67220.dial.tip.net -- [12 / Oct / 1995: 01: 39: 12 -0600] "POST /cgi-bin/phone.pl HTTP / 1.0" 200 309
129.186.123.55 - - [12 / Oct / 1995ag5881.usask.ca - - [12 / Oct / 1995: 16: 07: 36 -0600] "GET /images/letter_32.gif HTTP / 1.0" 200 149
Пытался много регулярных выражений, как^([^\s]*).-.([^\s]*)?.\[([^\]]*)]."([^\"]*)".([^\s]\d*).([^\s]\d*)?$
Но либо он не игнорировал ошибочные журналы сверху, либо просто вызывал ошибки.