【发布时间】:2021-04-28 11:50:53
【问题描述】:
我有一个问题,我写了一个 Nlog.target 来登录数据库,但我希望 nlog 应该根据条件记录。如果 dbvalue 为真,我想设置一个条件,然后在 db 中创建日志条目。 我写了下面的代码,它不起作用,dbvalue 是 false,但日志仍然在 db 中生成。
我在我的 startup.cs 文件中添加了这一行 GlobalDiagnosticsContext.Set("dbvalue", "false");
这是我的 nlog.config
<rules>
<logger name="Microsoft.*" maxlevel="Info" final="true" writeTo="" />
<logger name="*" minlevel="Info" writeTo="database" >
<filters>
<when condition="equals('${gdc:dbvalue}', 'true')" action="Log" />
</filters>
</logger>
</rules>
有人可以帮忙吗?
【问题讨论】:
-
请注意,默认过滤器操作值为
Neutral,因此过滤器仅在使用action="Ignore"时有效。 NLog 4.6 允许指定defaultAction="Ignore",其中可以使用action="Log"。另见:github.com/NLog/NLog/wiki/Filtering-log-messages#filters
标签: c# asp.net-core nlog