如何提高一个记录器的日志级别
How to raise log level on one logger
我有以下 nlog 配置。我只想不记录来自 Meazure.Core.SiteContext
.
的任何非错误消息
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<extensions>
<add assembly="NLog.Targets.GrowlNotify" />
<add assembly="Gelf4NLog.Target" />
</extensions>
<targets>
<target name="file" xsi:type="File" fileName="${basedir}/log.log" layout="${longdate}|${level:uppercase=true}|${logger}|${message}|${exception:format=Type,Message,StackTrace:innerFormat=Type,Message,StackTrace:maxInnerExceptionLevel=10:innerExceptionSeparator=\n\t}" maxArchiveFiles="1" archiveAboveSize="1000000" />
<target name="dev" xsi:type="Console" />
<target name="growl" type="GrowlNotify" host="" password="" />
</targets>
<rules>
<logger name="Meazure.Core.SiteContext" minlevel="Error" writeTo="file" final="true" />
<logger name="*" minlevel="Trace" writeTo="dev" />
<logger name="*" minlevel="Debug" writeTo="file" />
<logger name="*" minLevel="Info" writeTo="growl" />
</rules>
</nlog>
没用!我仍然在 file
中收到这样的消息
2016-03-23 15:08:58.0125|DEBUG|Meazure.Core.SiteContext|Closed connection at 2016-03-23 3:08:58 PM -07:00
我做错了什么?
最终规则适用于组合:
- loggername
- 最小等级
因此具有 loggername "Meazure.Core.SiteContext" 和 minlevel "error" 的事件不会进入记录器规则 2-4。但是如果级别是"debug",它就会。
完成此操作的最佳方法是使用 Null target:
新目标:
<target name="null" xsi:type="Null" />
规则:
<logger name="Meazure.Core.SiteContext" minlevel="Error" writeTo="file" final="true" />
<logger name="Meazure.Core.SiteContext" writeTo="null" final="true"/>
<logger name="*" minlevel="Trace" writeTo="dev" />
<logger name="*" minlevel="Debug" writeTo="file" />
<logger name="*" minLevel="Info" writeTo="growl" />
我有以下 nlog 配置。我只想不记录来自 Meazure.Core.SiteContext
.
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<extensions>
<add assembly="NLog.Targets.GrowlNotify" />
<add assembly="Gelf4NLog.Target" />
</extensions>
<targets>
<target name="file" xsi:type="File" fileName="${basedir}/log.log" layout="${longdate}|${level:uppercase=true}|${logger}|${message}|${exception:format=Type,Message,StackTrace:innerFormat=Type,Message,StackTrace:maxInnerExceptionLevel=10:innerExceptionSeparator=\n\t}" maxArchiveFiles="1" archiveAboveSize="1000000" />
<target name="dev" xsi:type="Console" />
<target name="growl" type="GrowlNotify" host="" password="" />
</targets>
<rules>
<logger name="Meazure.Core.SiteContext" minlevel="Error" writeTo="file" final="true" />
<logger name="*" minlevel="Trace" writeTo="dev" />
<logger name="*" minlevel="Debug" writeTo="file" />
<logger name="*" minLevel="Info" writeTo="growl" />
</rules>
</nlog>
没用!我仍然在 file
2016-03-23 15:08:58.0125|DEBUG|Meazure.Core.SiteContext|Closed connection at 2016-03-23 3:08:58 PM -07:00
我做错了什么?
最终规则适用于组合:
- loggername
- 最小等级
因此具有 loggername "Meazure.Core.SiteContext" 和 minlevel "error" 的事件不会进入记录器规则 2-4。但是如果级别是"debug",它就会。
完成此操作的最佳方法是使用 Null target:
新目标:
<target name="null" xsi:type="Null" />
规则:
<logger name="Meazure.Core.SiteContext" minlevel="Error" writeTo="file" final="true" />
<logger name="Meazure.Core.SiteContext" writeTo="null" final="true"/>
<logger name="*" minlevel="Trace" writeTo="dev" />
<logger name="*" minlevel="Debug" writeTo="file" />
<logger name="*" minLevel="Info" writeTo="growl" />