NLog:为什么 BufferingWrapper 似乎没有缓冲日志条目

拉姆达瓦什

我有一个简单的 .Net 核心 (2.2) 控制台应用程序。我正在尝试将其配置为与 NLog 一起使用。为简单起见,我使用“文件”目标。我正在尝试配置缓冲包装器,因此我按如下方式包装了目标:

<target name="bufferWrapper" xsi:type="BufferingWrapper" bufferSize="100">
   <target name="logfile" xsi:type="File" fileName="file.txt" />
</target>

当我在写入 Nlog 后立即在断点处以调试模式停止时:

Logger.Info("Hello world");

我看到日志条目已经添加到“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>

顺便提一句。BufferingWrapper 是一种用于延迟(甚至丢弃)日志事件的节流机制。如果性能很重要,那么应该<targets async="true">直接使用或 AsyncWrapper。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

带有bufferingwrapper和autoflushwrapper的NLog MailTarget:事件的反向顺序?

Nlog AutoFlushWrapper 在带有数据库目标的 BufferingWrapper 之上,如果应用程序崩溃/异常关闭,缓冲区中的日志将丢失

为什么日志文件大小没有到达使用 NLog 的端点?

为什么NuGet for NLog 3.1.0.0没有将NLog.config文件添加到其目标?

为什么我在 Kibana 中从 NLog FileTarget 收到部分日志消息?

为什么我不能通过 NLog 将日志保存到数据库?

为什么没有升压日志?

为什么没有将缓冲区写入FileChannel

为什么我没有缓冲区溢出?

为什么我的常量缓冲区没有更新?

为什么GCC似乎没有文件系统标准库?

为什么OpenFST似乎没有'run'或'accept'或'transduce'命令?

为什么AdamOptimizer似乎没有应用正确的渐变?

tcpdump似乎没有捕获任何数据,为什么?

该程序似乎没有退出循环。这是为什么?

为什么我的全局变量似乎没有改变?

为什么ubuntu似乎没有释放内存?

为什么这个函数似乎没有返回任何值

为什么这似乎没有初始化

为什么在我滚动之前似乎没有 JavaScript 代码?

为什么我的WeakHashMap条目没有被GC删除?

为什么END键没有terminfo条目?

为什么它说“条目”没有定义?

为什么此MIPS文件没有打印到日志?

Google App Engine为什么某些日志没有显示?

nginx:为什么没有重定向位置的访问日志

为什么我没有在日志中获得 JSON 正文?

为什么日志没有显示API发送的请求信息?

为什么我得到的日志没有定义