ram*_*ash 1 c# nlog nlog-configuration .net-core
我有一个简单的 .Net core (2.2) 控制台应用程序。我正在尝试将其配置为与 NLog 一起使用。为简单起见,我使用“文件”目标。我正在尝试配置缓冲包装器,因此我将目标包装如下:
<target name="bufferWrapper" xsi:type="BufferingWrapper" bufferSize="100">
<target name="logfile" xsi:type="File" fileName="file.txt" />
</target>
Run Code Online (Sandbox Code Playgroud)
当我在写入 Nlog 后立即在断点处停止调试模式时:
Logger.Info("Hello world");
Run Code Online (Sandbox Code Playgroud)
我看到日志条目已添加到“file.txt”中。我本以为它只有在累积 100 个日志条目后才将条目刷新到文件中(如bufferSize=100)。
谢谢你的帮助
当使用目标包装器时,应该写入目标包装器,而不是实际的目标。
像这样的东西:
<nlog>
<targets>
<target name="bufferWrapper" xsi:type="BufferingWrapper" bufferSize="100">
<target name="logfile" xsi:type="File" fileName="file.txt" />
</target>
</targets>
<rules>
<logger name="*" writeTo="bufferWrapper" /> <!-- Do not write directly to logfile -->
</rules>
</nlog>
Run Code Online (Sandbox Code Playgroud)
顺便提一句。BufferingWrapper 是一种用于延迟(甚至丢弃)日志事件的节流机制。如果性能很重要,那么应该<targets async="true">直接使用 AsyncWrapper 或 AsyncWrapper。
| 归档时间: |
|
| 查看次数: |
886 次 |
| 最近记录: |