Как включить и выключить ведение журнала для определенных уровней в NLog

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

  <rules>
    <logger name="*" minlevel="Debug" writeTo="f" />
    <logger levels="Error,Warn,Fatal,Debug,Info" name="CustomLogger" writeTo="database"/>
  </rules>

Как отключить ведение журнала для определенного уровня регистратора. Я не хочу удалять его из строки ниже.

<logger levels="Error,Warn,Fatal,Debug,Info" name="CustomLogger" writeTo="database"/>

Как включить и выключить Info вход в систему, используя что-то вроде этого:

internalLogLevel="Off"

person Harsha W    schedule 19.09.2017    source источник


Ответы (2)


Добавьте последнее правило, которое записывает журналы в «черную дыру». Добавьте это как первое правило. Выключите / включите его с атрибутом enabled.

например Чтобы отключить уровень "информации", добавьте это как первое правило <rules>:

<logger levels="Info" name="*" writeTo="blackHole" final="true" enabled="true" />

и цель черной дыры <targets>

<target name="blackHole" xsi:type="Null" />
person Julian    schedule 22.09.2017
comment
Спасибо, @Julian. Я просто решил свою проблему, установив enabled на true и false. <logger levels="Info" name="*" writeTo="database" enabled="false" /> - person Harsha W; 25.09.2017

Может быть, комбинация фильтров и глобальных переменных NLog?

https://github.com/NLog/NLog/wiki/Filtering-log-messages

https://github.com/NLog/NLog/wiki/Gdc-layout-renderer

person Rolf Kristensen    schedule 21.09.2017