Zidium

Расширение Log4Net для Zidium позволяет отправлять из приложения в систему мониторинга следующие данные:

  1. Данные об ошибках
    Перед отправкой ошибки группируются, что позволяет экономить трафик. Данные об ошибках изменяют состояние компонента. Об изменении статуса компонента отправляются уведомления.

  2. Лог
    Лог не изменяет состояние компонента, используется только для чтения из личного кабинета.

Через расширение лога можно отправить только данные об ошибках и логи, если вам нужно отправлять результаты проверок или метрик, то нужно использовать Zidium API.

Расширение Log4Net для Zidium — это open source проект. Участвуйте, чтобы сделать его лучше!

https://github.com/Zidium/Log4NetAdapter


Для использования расширения лога выполните шаги:

1. Установите расширение лога

Рекомендуем устанавливать расширение через Nuget-пакет Log4Net.Zidium

PM > Install-Package Log4Net.Zidium

Исходный код расширения доступен на GitHub: https://github.com/Zidium/Log4NetAdapter

После установки пакета в приложение будет добавлено 2 файла:

Zidium.Api.dll – API системы мониторинга
Zidium.Log4NetAppender.dll – расширение Log4Net

2. Настройте Zidium.config

Настройка Zidium API выполняется через файл Zidium.config, добавьте его к проекту (из-за ограничений Nuget 3 это невозможно сделать автоматически).

<?xml version="1.0" encoding="utf-8" ?>
<root>
    <access url="" secretKey="" />
    <defaultComponent id="" />
</root>

В файле нужно заполнить:

url - адрес сервиса Api (диспетчера)

secretKey - секретный ключ (смотрите в Управление — Ключи доступа к Api)

defaultComponent id - ID компонента по умолчанию, от имени которого будет происходить отправка данных приложения

3. Настройте Log4Net

Сборка Zidium.Log4NetAppender.dll содержит две цели:

  • Log4NetAppenderLog используется для отправки лога в Zidium
  • Log4NetAppenderErrors используется для мониторинга ошибок

В файле конфигурации приложения (app.config или web.config) измените параметры Log4Net — добавьте appender и укажите в параметре componentId Id компонента из личного кабинета.
Можно не указывать componentId здесь, а задать его в разделе defaultComponent файла Zidium.config

Должно получиться так:

<configuration>
    <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
    </configSections>

    <log4net>
        <root>
            <level value="ALL" />
            <appender-ref ref="ZidiumLog" />
            <appender-ref ref="ZidiumErrors" />
        </root>

        <appender name="ZidiumLog" type="Zidium.Log4NetAppenderLog, Zidium.Log4NetAppender">
            <componentId value="7e977e31-4a97-440c-a185-eb89b523914d"></componentId>
        </appender>

        <appender name="ZidiumErrors" type="Zidium.Log4NetAppenderErrors, Zidium.Log4NetAppender">
            <componentId value="7e977e31-4a97-440c-a185-eb89b523914d"></componentId>
        </appender>

    </log4net>

</configuration>

Внимание!

Если вы впервые используете Log4Net, то не забудьте инициализировать его конфигурацию при запуске приложения, например, добавив в файл AssemblyInfo.cs строку:

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

Важно! Перед завершением приложения нужно выполнить запись всех закешированных данных:

Zidium.Api.Client.Instance.EventManager.Flush();
Zidium.Api.Client.Instance.WebLogManager.Flush();

4. Отправка ошибок в Zidium

Для отправки ошибок в Zidium - просто запишите ошибку в лог, например:

try
{
    ...
}
catch (Exception exception)
{
    var logger = LogManager.GetLogger(typeof(Program));
    logger.Error("Комментарий к ошибке", exception);
}

Вы можете указать дополнительные параметры ошибки:

exception.Data.Add("user", "vasya");
exception.Data.Add("ip", "192.168.1.1");
logger.Error("Комментарий к ошибке", exception);

Чтобы посмотреть ошибки компонента, перейдите в раздел Ошибки личного кабинета
и выберите нужный компонент.

Кликните по названию ошибки, чтобы увидеть более подробную информацию

5. Отправка логов в Zidium

Для отправки сообщений лога в Zidium - просто выполняется запись сообщений в лог:

var logger = LogManager.GetLogger(typeof(Program));
logger.Info("My message");

Чтобы посмотреть записи лога, перейдите в раздел Лог личного кабинета.
Выберите нужный компонент в списке и нажмите кнопку Найти.
Будут показаны записи лога по этому компоненту:

Кликнув по записи лога, можно посмотреть её свойства:

Используйте фильтры в верхней части страницы, чтобы отобрать записи лога, которые вам нужны.