【问题标题】:How to configure NLog to only log from a certain level for a logger namespace for *all* targets如何将 NLog 配置为仅从某个级别为 *all* 目标的记录器命名空间进行记录
【发布时间】:2016-04-12 15:58:42
【问题描述】:

我配置了以下记录器。

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <targets>
    <target name="file" xsi:type="File" fileName="trace.log"/>
    <target name="trace" xsi:type="OutputDebugString"/>
    <target name="console" xsi:type="ColoredConsole" />
  </targets>
  <rules>
      <logger name="*" minlevel="Info" writeTo="file" />
      <logger name="*" minlevel="Info" writeTo="trace" />
      <logger name="*" minlevel="Info" writeTo="console" />
  </rules>
</nlog>

我希望 Component.* 的所有内容仅从 WARN 记录,并且所有记录器的记录更高。使用 NHibernate,这很容易:

<logger name="NHibernate.SQL">
  <level value="OFF"/>
</logger>

我尝试添加以下内容:

<logger name="Component.*" minlevel="Warn" final="true" />

这不起作用。

如何仅从特定级别为 所有 目标的记录器命名空间进行记录?

【问题讨论】:

    标签: c# logging nlog


    【解决方案1】:

    解决办法是:

    <logger name="Component.*" maxlevel="Info" final="true" />
    

    你基本上说,对于记录器 X,我想跳过所有匹配 Info 或更低的日志条目,因为它没有 writeTo 属性。

    这里有记录:

    https://github.com/nlog/NLog/wiki/Configuration-file

    附样本:

    <logger name="Name.Space.*" minlevel="Debug" maxlevel="Error" final="true" />
    

    【讨论】:

      猜你喜欢
      • 2014-08-21
      • 2018-06-15
      • 1970-01-01
      • 1970-01-01
      • 2011-12-16
      • 1970-01-01
      • 1970-01-01
      • 2019-05-30
      • 2013-10-10
      相关资源
      最近更新 更多