Многие программы записывают вещи в текстовый файл в формате, подобном следующему:
11/19/2008 13:29:01 ОТЛАДКА Открытие соединения с localhost.
11/19/2008 13:29:01 ОТЛАДКА Отправка сообщения для входа в систему для пользователя 'ADMIN'.
11/19/2008 13:29:03 DEBUG Получен ответ для входа «OK» для пользователя «ADMIN».
...
Тем не менее, я предпочитаю что-то более структурированное, например XML, чтобы легче было анализировать журналы. Я делал это в своих программах VB6 / Asp Classic годами, и сейчас я хочу сделать это в .Net. Есть ли что-нибудь, что уже сделает это, или мне просто переписать код VB6 на C #?
Вот как выглядит вызов моего компонента журналирования для моих программ VB6:
Trace.Warn "MMain", "Main(command, other data)", "Deprecated command", _
sCommandName, sOtherData
В результате получается следующая запись в журнале:
<Info time="11/17/2008 04:49:45 PM" mod="MMain" proc="Main" entry="Deprecated command" command="The_Bad_Command" other_data="The other data." />
Когда я хочу открыть журнал с помощью своего пользовательского средства просмотра журналов, я просто оборачиваю весь файл в корневой узел, и затем я могу легко сделать это с помощью MSXML, чтобы отфильтровать записи, которые я вижу, найти конкретного пользователя логин и тд и тп ...
<Log>
...the log file text...
</Log>