Я пытаюсь подсчитать количество обращений к конкретному URL-адресу на нашем веб-сайте, проанализировав наши журналы IIS с помощью Log Parser 2.2. Кажется, все работает нормально, за исключением того, что обработка временных меток меня очень сбивает с толку.Log Parser 2.2, пропуская сегодняшние журналы IIS
Журналы IIS имеют все временные метки, выраженные в UTC. Поэтому в моем приложении я конвертирую время сервера в UTC, прежде чем подключать его к запросу. Однако, когда я пытаюсь запросить данные текущего дня, я возвращаю нулевой счет, несмотря на то, что вижу записи в файле журнала. Сформированный запрос я пытаюсь запустить, чтобы получить все, что в течение текущего дня выглядит примерно так (запрос выполняется на 11.11.2009, и я использую время Аризона):
SELECT COUNT(*)
FROM \\Server\IIS Logs\LogFiles\W3SVC1\u_ex*.log
WHERE
cs-method = 'GET'
AND cs(Referer) NOT LIKE '%ntorus%'
AND c-ip NOT LIKE '192%'
AND c-ip NOT LIKE '127%'
AND (
cs-uri-stem = '/'
OR cs-uri-stem = '/myurl')
AND sc-status BETWEEN 200 AND 299
AND date BETWEEN
TIMESTAMP('2009-11-11 07:00', 'yyyy-MM-dd hh:mm')
AND TIMESTAMP('2009-11-12 07:00', 'yyyy-MM-dd hh:mm')
Это выглядит для по какой-то причине данные текущего дня пропускаются. Когда вы запрашиваете более ранние даты, я возвращаю данные просто отлично. Почему это происходит?
Рад, что помог, и что вы нашли лучший способ Делать это. – Jacob
Быстрый комментарий. Строка формата даты чувствительна к регистру, запись «yyyy-mm-dd» заставит вас потратить добрые 15 минут, пытаясь понять, почему даты LogParser нарушены. вздох. –