NLog

Средний

Для проверки корректности работы новой функциональности мы рекомендуем включить логирование. Чтобы избежать ухудшения производительности, рекомендуется включать логирование только при тестировании и отладке приложения. В Creatio выполняется логирование всех основных операций. Для этого используется NLog — бесплатная библиотека логирования для .NET, которая позволяет маршрутизировать и управлять логами приложения, независимо от его размера или сложности.

Библиотека позволяет выполнять следующие действия:

  • Обрабатывать диагностические сообщения, которые отправляются с любого языка .NET.
  • Дополнять логи контекстной информацией.
  • Форматировать логи в соответствии с предпочтениями пользователя.
  • Отправлять логи одному или нескольким получателям сообщений, таким как файл или база данных.

Документация по работе с библиотекой NLog доступна на сайте GitHub.

Настроить логирование для on-site приложений 

Логирование отдельно выполняется для загрузчика приложения и для конфигурации Default.

Способы настройки логирования для on-site приложений:

  • через конфигурационный файл;
  • через конфигурационный объект LoggingConfiguration.

Пример настройки логирования содержится в статье Реализовать модальное окно.

Настроить логирование для on-site приложений через конфигурационный файл 

  1. Задать путь к файлу с настройками логирования.
  2. Задать получателей логирования.
  3. Задать правила логирования.

1. Задать путь к файлу с настройками логирования 

Файлы каталога ..\Terrasoft.WebApp, в которых настраивается логирование:

  • nlog.config.
  • nlog.targets.config.
  • nlog.cloud.config (для cloud приложений).
  • nlog.cloud.settings.config (для cloud приложений).

Задайте путь к файлу nlog.config в конфигурационном файле ..\Terrasoft.WebApp\Web.config.

Пример файла nlog.config
<common>
  <logging>
    <factoryAdapter type="Common.Logging.NLog.NLogLoggerFactoryAdapter, Common.Logging.NLog45">
      <arg key="configType" value="FILE" />
      <arg key="configFile" value="~/nlog.config" />
    </factoryAdapter>
  </logging>
</common>

2. Задать получателей логирования 

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

Виды получателей логирования:

  • Получатели, которые получают и обрабатывают сообщения.
  • Получатели, которые буферизируют или направляют сообщения другому получателю.

Задайте получателей логирования в XML-элементе <target> файла ...\Terrasoft.WebApp\nlog.targets.config.

Атрибуты для настройки получателей логирования:

  • name — имя получателя.
  • xsi:type — тип получателя. Может принимать значения "File", "Database", "Mail".
  • fileName — файл и путь к файлу для хранения логов. Местоположение файлов логов зависит от значения системных переменных Windows.

    [TEMP]\Creatio\Site_[SiteId]\[ApplicationName]\Log\[DateTime.Today]
    
    C:\Windows\Temp\Creatio\Site_1\creatio806\Log\2022_05_22
    
    [TEMP]\Creatio\Site_[SiteId]\[ApplicationName]\[ConfigurationNumber]\Log\[DateTime.Today]
    
    C:\Windows\Temp\Creatio\Site_1\creatio806\0\Log\2022_05_22
    
    • [TEMP] — базовый каталог. По умолчанию для IIS используется каталог C:\Windows\Temp, а для Visual Studio (IIS Express) — C:\Users\[Имя пользователя]\AppData\Local\Temp.
    • [SiteId] — номер сайта. Для IIS указан в расширенных настройках сайта. Для Visual Studio номер содержит значение 2.
    • [ApplicationName] — название приложения.
    • [ConfigurationNumber] — номер конфигурации. Конфигурация Default, как правило, имеет номер 0.
    • [DateTime.Today] — дата логирования.
    scr_nlog_IIS_advanced.png
  • layout — шаблон заполнения файла с логами.
Пример файла nlog.targets.config
<target name="universalAppender" xsi:type="File"
    layout="${DefaultLayout}"
    fileName="${LogDir}${LogDay}${logger:shortName=True}.log" />

Получатели логирования подробно описаны в документации NLog.

3. Задать правила логирования 

Задайте правила логирования в файле nlog.config.

Атрибуты для настройки правил логирования:

  • name — имя лога.
  • minlevel — минимальный уровень логирования. По умолчанию уровень логирования для всех компонентов Creatio установлен таким образом, чтобы обеспечить максимальную производительность приложения.

    Возможные уровни логирования в порядке возрастания приоритета:

    • Trace — логирование событий при отладке трассировки (указываются начальный и конечный методы).
    • Debug — логирование всех событий при отладке.
    • Info — нормальная работа приложения.
    • Warn — логирование предупреждений (приложение будет продолжать работу).
    • Error — логирование ошибок (возможно прекращение работы приложения).
    • Fatal — логирование ошибок, приводящих к прекращению работы приложения.
    • Off — логирование отключено, не используется для записей.
  • maxlevel — максимальный уровень логирования.
  • level — логирование событий одного уровня логирования.
  • levels — логирование событий нескольких уровней логирования (указываются через запятую).
  • writeTo — имя получателя логирования.
  • final — после совпадения окончательного правила правила не обрабатываются.
  • enabled — отключить правило (установить значение false), не удаляя его.
  • ruleName — идентификатор правила.

Порядок обработки атрибутов правил логирования:

  1. level.
  2. levels.
  3. minlevel и maxlevel.

Если minLevel = "Warn" level = "Info", то используется только уровень логирования Info, поскольку приоритет обработки атрибута level выше, чем minLevel.

Пример правила логирования, которое записывает лог в базу данных
<logger name="IncidentRegistration" writeTo="AdoNetBufferedAppender" minlevel="Trace" final="true" />

Настроить логирование для on-site приложений через конфигурационный объект LoggingConfiguration 

  1. Создайте объект LoggingConfiguration, который описывает конфигурацию.
  2. Создайте получателей логирования.
  3. Установите свойства получателей.
  4. Определите правила логирования с использованием объектов LoggingRule.
  5. Добавьте правила логирования в конфигурационные объекты LoggingRules.
  6. Активируйте конфигурацию. Для этого укажите созданный объект конфигурации в LogManager.Configuration.

Настроить логирование для cloud приложений 

Чтобы настроить логирование для cloud приложений, обратитесь в службу технической поддержки Creatio.

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

Смотрите также