2016-11-15 29 views
4

我有一個NLog配置文件如下。由於某些原因,NLog需要進行異步處理。如何檢查NLog是否已完成以異步模式從隊列中記錄消息?

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true"> 
    <targets async="true"> 
    <target name="file" xsi:type="File" fileName="c:/log1.log" archiveEvery="Day" archiveNumbering="Rolling"/> 
    </targets> 
    <rules> 
    <logger name="*" minlevel="Info" writeTo="file"/> 
    </rules> 
</nlog> 

我想知道有沒有什麼方法,我可以用它來檢查NLOG完日誌消息,如下東西:

for (int i = 0; i <= 9999; i++) 
{ 
    LogManager.GetCurrentClassLogger().Info("this is for testing " + i); 
} 
while(!LogManager.finished()) // check if finished or not 
{ 
    Console.Write("."); 
} 
Console.Write("done"); 

感謝。

回答

0

沒有你可以檢查一個布爾值,但你可以叫flush - 當調用完成,記錄完成。

例如

for (int i = 0; i <= 9999; i++) 
{ 
    LogManager.GetCurrentClassLogger().Info("this is for testing " + i); 
} 
LogManager.Flush(); //flushes all async targets and block until done. There is also an optional timeout. 
Console.Write("done"); 

LogManager methods

+0

@llook是這樣的你在哪裏找? – Julian

相關問題