Расширение Log4Net для Zidium позволяет отправлять из приложения в систему мониторинга следующие данные:
Данные об ошибках
Перед отправкой ошибки группируются, что позволяет экономить трафик.
Данные об ошибках изменяют состояние компонента.
Об изменении статуса компонента отправляются уведомления.
Лог
Лог не изменяет состояние компонента, используется только для чтения из личного кабинета.
Через расширение лога можно отправить только данные об ошибках и логи, если вам нужно отправлять результаты проверок или метрик, то нужно использовать 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 содержит две цели:
В файле конфигурации приложения (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");
Чтобы посмотреть записи лога, перейдите в раздел Лог личного кабинета.
Выберите нужный компонент в списке и нажмите кнопку Найти.
Будут показаны записи лога по этому компоненту:
Кликнув по записи лога, можно посмотреть её свойства:
Используйте фильтры в верхней части страницы, чтобы отобрать записи лога, которые вам нужны.