нужна помощь в разборе журнала IIS в C # - PullRequest
1 голос
/ 04 февраля 2010

В моем журнале IIS есть параметр запроса (cs-uri-query), который выглядит следующим образом:

"TraceId=8c0b8329-f125-4dec-90af-f508674284f5,PartnerId=Partner1\r\n,UserInput=Address1:+1234+block+of+XYZ+Street+Address2:+Santa+Fe+Springs+State:+California+ZipCode:+90000+Country:+United+States+"

Мне нужно извлечь Address1, Address2, State, ZipCode и Country из вышеуказанной строки.также обратите внимание, что эти поля не всегда должны отображаться в одном и том же порядке.

Какой самый лучший и быстрый способ разобрать это? Я пытаюсь сделать это с помощью инструмента командной строки ac #. любое другое решение на основе сценариевтоже хорошо.

Ответы [ 2 ]

2 голосов
/ 04 февраля 2010
0 голосов
/ 08 октября 2012

LogParser очень хорош для такого рода вещей.Однако не обязательно писать код на C #;Вы можете получить доступ к LogParser из командной строки / в скриптах оболочки.И для извлечения данных, которые вы хотите, функция LogParser EXTRACT_TOKEN будет полезна.Например, чтобы получить UserInput часть этой строки запроса, вы могли бы сказать:

LogParser -i:IISW3C "SELECT EXTRACT_TOKEN(cs-uri-query, 3, '=') FROM ex10082012.log"

(для разбора на Address1, Address2 и т. Д. Потребуется применить большеконечно же, вложенные «выдержки».)

Для получения дополнительной информации о том, как использовать EXTRACT_TOKEN, посмотрите файл LogParser.chm, который входит в пакет установки, или выполните LogParser -h FUNCTIONS EXTRACT_TOKEN из командной строки.1012 *

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