我有一个配置为多个目标的记录器。我可以在某些条件下过滤目标吗?
<logger name="actionsLogger" minlevel="Info" writeTo="fileTarget,rmqTarget1,rmqTarget2" />
我需要始终将操作写入fileTarget,在某些情况下还要写入rmqTarget1和rmqTarget2。也许解决方案是使用自己的目标创建多个记录器。但我无法更改项目的源代码并重新编译。
答案 0 :(得分:2)
感谢您的回复。我找到了解决方案。 FilteringWrapper - https://github.com/NLog/NLog/wiki/FilteringWrapper-target。它为目标应用过滤器而不是过滤器。
<target
xsi:type="FilteringWrapper"
condition="'${event-context:item=Status}'=='Success'"
name="rabbitMQFilteringTarget">
<target
xsi:type="RabbitMQ"
name="rabbitMQTarget"
...
</target>
</target>
答案 1 :(得分:0)
在NLog wiki上查看 Conditions 。
条件是与过滤时使用的过滤器表达式。它们由一个或多个测试组成。它们在 when 过滤器中用于确定是否将采取操作。