синтаксический анализ LogRecord - PullRequest
0 голосов
/ 22 мая 2018

Журналы представляют собой ASCII-файл с одной строкой на запрос, со следующими столбцами:

  1. Хост, выполняющий запрос.
  2. Не используется
  3. Имя хостаесли возможно, в противном случае - Интернет-адрес, если имя не удалось найти.
  4. Метка времени в формате «ДЕНЬ МОН ДД ЧЧ: ММ: СС ГГГГ», где ДЕНЬ - день недели, МОН - этоназвание месяца, DD - день месяца, HH: MM: SS - время дня с использованием 24-часовых часов, а YYYY - год.Часовой пояс -0400.
  5. Запрос указан в кавычках.
  6. Код ответа HTTP.
  7. Байт в ответе.

Таким образом, строки, подобные этой, должны быть проанализированы:

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*)?$

Но либо он не игнорировал ошибочные журналы сверху, либо просто вызывал ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...