[英]NLog: Why BufferingWrapper does not seem to buffer log entries
我有一個簡單的 .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。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.