Многие начинающие разработчики рано или поздно сталкиваются с необходимостью ведения журналов работы приложения, или попросту лог-файлов. Самостоятельно разрабатывать функции ведения журналов не самая хорошая идея, тем более, что существует огромное множество готовых пакетов логгирования. Не будем перечислять их все и рассматривать достоинства и недостатки различных решений. Цель данной статьи показать, как использовать один из популярных пакетов по ведению разного рода журналов NLog в своем приложении.
Для начала, создадим консольное приложение demoNlog
В проекте следует перейти в установщик пакетов NuGet
Далее, необходимо найти и установить два пакета NLog и NLog.Config
Важный момент, конфигурационный файл NLog.Config должен находиться в директории программы, поэтому необходимо выставить свойство файла «Копировать в выходной каталог» в статус «Всегда копировать». Это позволит упростить и автоматизировать применение изменений конфигурации логгирования.
Теперь можно приступить к настройке логгирования.
Определим, для примера, следующую задачу логгирования: Каждый день в отдельный файл, пишем все события начиная с уровня Debug и выше, логи пишутся в папку «logs».
Для начала необходимо в секцию <targets> прописать параметры целевого вывода:
<!-- Данная цель сохраняет лог в файл вида logs\2018-04-20.log вид сообщения: 2018-04-20 12:27:05.9121 DEBUG debug message --> <target xsi:type="File" name="filedata" fileName="${basedir}/logs/${shortdate}.log" layout="${longdate} ${uppercase:${level}} ${message}" />
Таким образом, мы создаем целевой вывод с именем filedata, типом вывода File, и целевой файл logs\YYYY-MM-DD.log будет создаваться новый каждый день с именем даты.
Формат вывода будет следующего вида:
2018-04-20 12:27:05.9121 DEBUG debug message
После этого, в секции <rules> необходимо добавить следующие параметры:
<!-- Данное правило пишет все сообщения с минимальным уровнем Debug в целевой лог filedata --> <logger name="*" minlevel="Debug" writeTo="filedata" />
Таким образом в лог будет попадать информация с минимальным уровнем Debug и попадать в целевой лог filedata.
Теперь пропишем в нашей программе следующий код
using NLog; namespace demoNlog { internal class Program { private static Logger logger = LogManager.GetCurrentClassLogger(); private static void Main(string[] args) { logger.Trace("trace message"); logger.Debug("debug message"); logger.Info("info message"); logger.Warn("warn message"); logger.Error("error message"); logger.Fatal("fatal message"); } } }
После работы программы в папке logs будет создан лог-файл, в котором будет отражен журнал работы программы:
2018-04-23 13:20:34.9792 DEBUG debug message 2018-04-23 13:20:35.0552 INFO info message 2018-04-23 13:20:35.0552 WARN warn message 2018-04-23 13:20:35.0552 ERROR error message 2018-04-23 13:20:35.0552 FATAL fatal message
Пример описан в видео на нашем канале:
ссылки к статье:
Исходный код примера на GitHub
Руководство по настройке NLog (eng)
Текст примера: [wpdm_package id=’1916′]
Комментарии закрыты.