NLog Core 2.0 ведет журнал автоматически - PullRequest
0 голосов
/ 12 октября 2018

Я строю API, используя .Net Core 2.0.

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

Я следовал этой конфигурации, но я неНе понимаю 2 вещей:

  1. Как Nlog отличает nlog-all от nlog-own.Я имею в виду, что правила одинаковы для обоих файлов:

    <logger name="*" minlevel="Trace" writeTo="allfile" />
    
    <logger name="*" minlevel="Trace" writeTo="ownFile-web" />
    
  2. Почему NLog автоматически регистрирует nlog-all?Как я могу взять это под контроль?
  3. Да, я солгал, я сказал 2 вещи, но какой смысл настраивать appsettings.json, если все должно быть настроено в файле xml nlog.config?

1 Ответ

0 голосов
/ 13 октября 2018

Волшебство происходит в правиле ведения журнала, которое вы прекрасно исключили из примера:

  <!-- rules to map from logger name to target -->
  <rules>
    <!--All logs, including from Microsoft-->
    <logger name="*" minlevel="Trace" writeTo="allfile" />

    <!--Skip non-critical Microsoft logs and so log only own logs-->
    <logger name="Microsoft.*" maxLevel="Info" final="true" /> <!-- BlackHole without writeTo -->

    <logger name="*" minlevel="Trace" writeTo="ownFile-web" />
  </rules>

Правила ведения журнала оцениваются сверху вниз:

  • Верхнее правило "allFile" будет соответствовать всем регистратору (name = "*")

  • Среднее правило BlackHole будет соответствовать всем регистраторам Microsoft и из-за final = "true"затем он прекратит дальнейшее сопоставление.

  • Последний «ownFile» получит все данные от всех регистраторов, не начиная с Microsoft.

См. такжеhttps://github.com/nlog/NLog/wiki/Configuration-file#rules

См. Также https://github.com/nlog/NLog/wiki/Tutorial

...