【问题标题】:NLog rule orderingNLog 规则排序
【发布时间】:2015-08-06 15:34:15
【问题描述】:

我见过一些从特定命名空间抑制日志的示例,但它们似乎都抑制了该命名空间的所有内容除了,而不是相反(也就是说,“给我增强记录此命名空间并抑制其他所有内容”等)。

有人能解释一下为什么以下配置不会抑制 My.Namespace 命名空间中的记录器吗?目标是确保My.Namespace 命名空间中的任何记录器记录错误,而其他一切不受影响。

<configSections>
  <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" />
</configSections>

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <targets async="true">
    <target name="console" xsi:type="Console" layout="${level} ${message}" />
  </targets>

  <rules>
    <logger name="My.Namespace.*" minlevel="Error" writeTo="console" final="true" />
    <logger name="*" minlevel="Debug" writeTo="console" />
  </rules>
</nlog>

【问题讨论】:

    标签: .net logging namespaces nlog


    【解决方案1】:

    虽然我认为能够为命名空间抑制设置一揽子规则会更清楚,但我已经设法通过以下配置使其工作:

    <targets async="true">
      <target xsi:type="Console" name="console" layout="${longdate} ${level} ${message}" />
    </targets>
    
    <rules>
      <!-- Anything less or equal to DEBUG, don't write to anything (no target) -->
      <logger name="My.Namespace.*" maxlevel="Debug" final="true" />
    
      <!-- Anything greater or equal to INFO, write to the console target -->
      <logger name="My.Namespace.*" minlevel="Info" writeTo="console" final="true" />
      <logger name="*" minlevel="Debug" writeTo="console" />
    </rules>
    

    【讨论】:

      猜你喜欢
      • 2013-05-12
      • 2012-09-11
      • 2018-12-19
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      • 2016-10-03
      • 2012-08-15
      • 2011-11-14
      相关资源
      最近更新 更多