Как активировать вход в систему во время выполнения без перезапуска приложения? - PullRequest
2 голосов
/ 26 марта 2020

Можно активировать ведение журнала в Serilog или NLog без перезапуска. NET приложение?

Я хочу активировать ведение журнала во время работы приложения в системе клиентов, чтобы увидеть, что не так.

1 Ответ

3 голосов
/ 26 марта 2020

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

Если у вас есть nlog.config, вы можете включить автозагрузку:

<nlog autoReload="true">
   ...
</nlog>

Затем конфигурация будет перезагружена при сохранении изменений в файле.

Пример

Например:

В конфигурации вы можете изменить globalThreshold или <rules> во время бега.

<?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"
      autoReload="true"
      globalThreshold="Debug" >

  <!-- the targets to write to -->
  <targets>
    <!-- write logs to file  -->
    <target xsi:type="File" name="file1" fileName="c:\temp\nlog-all-${shortdate}.log"
            layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}" />

  </targets>

  <!-- rules to map from logger name to target -->
  <rules>
    <logger name="*" minlevel="Trace" writeTo="file1" />
  </rules>

</nlog>

Из кода

Вы также можете изменить конфигурацию из кода, затем отметьте LogManager.Configuration. Обратите внимание, что это свойство равно null, если у вас еще нет конфигурации (из кода или nlog.config).

...