NLog - 禁用特定记录器

Geo*_*uer 6 nlog

我想将所有记录器设置为记录到一个文件,除了特定类的记录器之外。我似乎不知道该怎么做。目前我正在尝试以下 nlog.config

无论我做什么,拦截器都会记录

<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="${basedir}/logs/log.log" 
                maxArchiveFiles="1" archiveAboveSize="1000000" />
    </targets>
    <rules>
        <logger name="*" minlevel="Debug" writeTo="file" />
        <logger name="MyApp.DbInterceptionConfig+LoggingEFInterceptor" minlevel="Info" writeTo="file" />

    </rules>
</nlog>
Run Code Online (Sandbox Code Playgroud)

Tac*_*667 7

添加final="true"到类中将告诉它在遇到该规则时停止运行其余规则。因此,如果您希望命中多个规则而不命中其他规则,则定义规则的顺序也可能很重要。


And*_*rew 5

从今天开始,您可以用来maxlevel=Off禁用记录器。

<logger name="Name.Space.Class3" maxlevel="Off" final="true" /> <!-- Blackhole that stops everything -->
<logger name="Name.Space.*" writeTo="target1" />
Run Code Online (Sandbox Code Playgroud)

文档链接