Feel Good.

04 апреля 2010

Смотрим логи. NLogViewer

Однажды, я написал статью, в которой рассказал про то, как быстро начать работать с системой логирования NLog. Да, все это хорошо, мы умеем вести лог файл, но что с ним делать? Этот, правильный на мой взгляд, вопрос мне задавали мои читатели. И я решил рассказать о NLogViewer - системе анализа лог файла, созданным NLog. Вообще, лог файл не зависит от системы логирования, поэтому существует множество различных систем просмотра(анализа) лог файлов. В этой статье я расскажу о NLogViewer, и о том, как сделать связку NLog+NLogViewer.

Итак, NLogViewer позволяет пользователю просматривать лог файл в удобном виде, используя для этого цветовую подсветку уровней логирования, фильтры и поиск, при этом, NLogViewer может оперировать как и с локальным лог-файлом, так и выступать в роли лог-сервера(!), который будет собирать определенную лог-информацию приходящей по сети.

Для того чтобы начать работать с NLogViewer надо скачать себе проект из SVN (я использовал клиент TortoiseSVN) с ветки http://svn.nlog-project.org/repos/nlog/trunk (или с http://github.com/lytri/NLogViewer). После чего, открыть NLogViewer.sln, собрать (у меня не собрался, пришлось руками настроить reference на NLog.dll) и запустить.

В главном окне программы Вам предложат открыть локальный лог файл, либо запустить лог-сервер. Первый вариант не столь интересен, как второй, поэтому выбираем лог-сервер. Вторым шагом надо определиться с протоколом передачи, указываем UDP нажимаем Next, выбираем порт (по-умолчанию 4000) жмем Next, определяем формат данных XML (Log4J-Compatibile XML(NLog, log4xxx)) нажимаем Finish. Все, сервер запущен на localhost:4000 и ожидает входящих лог-сообщений. Открываем новый проект, и добавляем в него исходный код, взятый из предыдущей статьи, а конфигурационный файл создайте новый следующего содержания:

<?xml version="1.0" encoding="utf-8" ?>

 

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

 

    <targets>

      <target name="viewer" xsi:type="NLogViewer" address="udp://localhost:4000" />

    </targets>

 

    <rules>

      <logger name="*" minlevel="Debug" writeTo="viewer" />

    </rules>

</nlog>


Обратите внимание на атрибут xsi:type, определяющий, что логирование будет происходить в лог-сервер NLogViewer по сети. Обязательным атрибутом у данного типа является address, определяющий протокол, сетевой адрес и порт лог-сервера. Заметим, что нет атрибута layout, так как layout на сервере. Более подробно о данном типе здесь. Запустите проект, и в окне NLogViewer вы увидите Ваши сообщения уровня Debug, маркированные разными цветами:



Progg it

5 комментариев:

  1. есть ли возможность вписать свою логику в этот сервер логирования?
    Например, при поступлении Fatal сделать то-то ... сообщить тому-то...

    З.Ы. огромное спасибо Вам за серию статей про NLog! :)

    ОтветитьУдалить
  2. Конечно, исходный код полностью открыт)

    Но есть небольшое исключение: должно быть сохранено авторское право.
    https://github.com/lytri/NLogViewer/blob/master/LICENSE.txt

    PS: NLog действительно хороший логгер, всем рекомендую. Вот скоро должна выйти выйти релизная версия NLog 2.0 (пока только бета).

    ОтветитьУдалить
  3. С GitHub'а качается NLogViewer, а вот в SVN'е лежат исходники NLog, и среди них я не нашёл клиента NLogViewer, там только target.

    ОтветитьУдалить
  4. В новой версии 2.0 этой утилиты уже нет (автор перестал ее поддерживать, но приглашает любого принять участие в проекте http://nlog-project.org/forum#nabble-td1685400).
    NLogViewer осталась в 1.0: http://svn.nlog-project.org/repos/nlog/branches/NLog1/NLogViewer/

    ОтветитьУдалить
  5. У меня почемуто не работает, в консоль пишет, в файл пишет а в NLogViewer Нет!

    ОтветитьУдалить