簡體   English   中英

NLog:為什么 BufferingWrapper 似乎沒有緩沖日志條目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM