NLog неожиданно пишет в журнал с ограничением более низкого уровня - уровень журнала игнорируется - PullRequest
0 голосов
/ 20 ноября 2018

Я смущен откатами уровня логирования NLog.У меня есть такой набор правил:

  <rules>
      <!-- Send Microsoft into a black hole to hide their logs -->
      <logger name="Microsoft.*" maxLevel="Warn" final="true" />
      <logger name="commands" minlevel="Info" writeTo="logger" final="true" />
    <logger name="*" minlevel="Trace" writeTo="logger" />
    <logger name="exception" minlevel="Error" writeTo="publisher" final="true" />
  </rules>

Что я ожидаю, так это то, что что-либо с именем регистратора «команды» будет регистрироваться только на уровне информации или выше.Любое другое имя регистратора будет зарегистрировано независимо.

То, что происходит, - то, что, когда я получаю регистратор для "команд" и проверяю его свойства, каждый уровень журнала включен, поэтому, если я предоставляю уровень журнала Отладки, тогдаэто все еще зарегистрировано.Насколько я понимаю, это не должно быть так.

Я думаю, что это как-то связано с моим резервным логгером (имя = "*"). Я считаю, что "final = true" в команде ""регистратор должен проводить дальнейшие проверки журналов.

Это работает в ядре .net

Не понимаю ли я, как это работает?

1 Ответ

0 голосов
/ 20 ноября 2018

Может быть, это будет работать:

  <rules>
    <!-- Send Microsoft into a black hole to hide their logs -->
    <logger name="Microsoft.*" maxLevel="Warn" final="true" />
    <logger name="commands" maxLevel="Debug" final="true" />

    <logger name="commands" minlevel="Info" writeTo="logger" final="true" />
    <logger name="*" minlevel="Trace" writeTo="logger" />
    <logger name="exception" minlevel="Error" writeTo="publisher" final="true" />
  </rules>
...