Programming
.NET
C#
DevOps
January 2018 25

Расширение NLog для мониторинга ошибок

From Sandbox
Не было ли у вас мысли, что исправлять ошибки пользуясь лог-файлом не очень эффективно?

Хотите исправлять ошибки быстрее и проще?

Тогда читайте мою статью, в которой я расскажу как можно выполнять мониторинг ошибок приложения с помощью расширения NLog.



Как это работает?


Решение для мониторинга ошибок должно быть пригодным для уже существующих приложений, где написано огромное количество кода, который ради мониторинга никто переделывать не будет.

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

Давайте внимательно посмотрим на типовой код обработки исключения:



Что можно использовать в качестве входной точки для мониторинга ошибок?

Верно, нам поможет система логирования.

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

Ниже нарисована схема как это работает:



Именно такую схему работы реализовывает расширение NLog для системы мониторинга Zidium. Что такое Zidium? Это облачный сервис мониторинга приложений, который можно использовать бесплатно.

Установить расширение можно через nuget-пакет — NLog.Zidium

Узнать больше о расширении можно в документации.

Hello World


Чтобы показать, как всё работает, создадим простое консольное приложение и подключим его к системе мониторинга. Пусть в приложении будет ошибка, которая записывается в NLog.

Код приложения

using NLog;
using System;

namespace NLog2
{
    class Program
    {
        private static Logger logger = LogManager.GetCurrentClassLogger();
        
        static void Main()
        {
            logger.Info("Начинаем запуск приложения");
            try
            {
                throw new Exception("Упс");
            }
            catch (Exception exeption)
            {
                logger.Error(exeption, "Ошибка запуска приложения");
            }
            LogManager.Flush();
        }
    }
}

Подключаем расширение к NLog

PM > Install-Package NLog.Zidium

Настраиваем Zidium.xml

Конфигурационный файл Zidium.xml должен быть в папке, где находится exe-файл программы.

<?xml version="1.0" encoding="utf-8" ?>
<root>
  <access accountName="Test" secretKey="..." />
  <defaultComponent id="3826486a-66ce-4a50-a310-4c87deaf01db" />
</root>

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

accountName – имя вашего аккаунта, можно посмотреть в личном кабинете
secretKey – секретный ключ API, можно посмотреть в личном кабинете
defaultComponent id – ID компонента, который нужно создать в личном кабинете системы мониторинга.

Настраиваем NLog.config

<?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"
      internalLogLevel="Trace" 
      internalLogFile="nlog-internal.log">
  <targets>
    <target name="ZidiumErrors" xsi:type="Zidium.Errors" />
  </targets>
  <rules>
    <logger name="*" minlevel="Info" writeTo="ZidiumErrors" />
  </rules>
</nlog>

Запуск приложения и проверка

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

Если всё сделано верно, то компонент Hello World в личном кабинете системы мониторинга станет красным, вам будет отправлено email-уведомление. На странице Ошибки будет представлена статистика ошибок.

Заключение


Теперь вы знаете простой и быстрый способ подключения приложения к системе мониторинга ошибок. Исправляйте ошибки быстрее и легче.

Желаю всем успехов.
+9
9.8k 35
Comments 176
Top of the day