我正在使用 NLog 同步日志记录编写了所有日志消息,但这需要更多时间来执行。所以,我期待异步日志。但是,在实施异步日志记录后,当每秒日志超过 300 时,会丢失许多日志。但我的要求是在一秒钟内写出超过 2000 的日志。
我在NLog配置下面使用这个:
<targets>
<target name="asyncViewer" xsi:type="AsyncWrapper" overflowAction="Block" queueLimit="1000000" batchSize="1000" timeToSleepBetweenBatches="0">
<target xsi:type="Chainsaw" name="viewer" address="udp://127.0.0.1:9999">
<parameter name="exception" layout="${exception:format=Type,Message,StackTrace:separator= }" />
</target>
</target>
</targets>
我该如何解决这个问题? 给我任何建议。 提前谢谢。
答案 0 :(得分:0)
您使用什么logviewer-application来查看Chainsaw-target的输出?您是否尝试过使用TCP而不是UDP?
也许logviewer-application无法处理UDP包,并且需要一些帮助来通过添加newline="true"
来拆分LogEvents:
<targets>
<target name="asyncViewer" xsi:type="AsyncWrapper" overflowAction="Block" queueLimit="1000000" batchSize="1000" timeToSleepBetweenBatches="0">
<target xsi:type="Chainsaw" name="viewer" address="udp://127.0.0.1:9999" newline="true">
<parameter name="exception" layout="${exception:format=Type,Message,StackTrace:separator= }" />
</target>
</target>
</targets>