我想在我的nlog.config中设置过滤器,如果消息包含子字符串,则日志条目应转到一个文件(由文件目标domainTarget
定义),如果不包含,则转到另一个文件(由文件目标technicalTarget
定义)。
换句话说:任何包含在domainTarget
中的东西(不管它的规则有多复杂)都不应该出现在technicalTarget
中。
这是我尝试过的:
<rules>
<logger name="*" minlevel="Trace" writeTo="domainTarget">
<filters>
<when condition="contains('${message}', 'mysubstring')" action="LogFinal"/>
</filters>
</logger>
<logger name="*" minlevel="Trace" writeTo="technicalTarget"/>
</rules>
使用这些设置,它会将所有记录到domainTarget
。并且还会将除具有该子字符串的消息以外的所有内容记录到technicalTarget
。
有没有人
发布于 2019-05-21 01:57:58
您是否尝试过使用NLog 4.6中引入的defaultAction?
<logger name="*" minlevel="Trace" writeTo="domainTarget">
<filters defaultAction="Ignore">
<when condition="contains('${message}', 'mysubstring')" action="LogFinal" />
</filters>
</logger>
<logger name="*" minlevel="Trace" writeTo="technicalTarget"/>
https://stackoverflow.com/questions/56225736
复制相似问题