2013-11-27 15 views
0

我NLOG配置文件如下:在製作時的一個因素運行NLOG配置用戶定義

<?xml version="1.0" encoding="utf-8" ?> 
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

     <targets> 
     <target xsi:type="File" 
      name="file" 
      layout="${longdate}|${level:uppercase=true}|${logger}|${message}" 
      archiveAboveSize="2000" 
      maxArchiveFiles="1" 
      archiveFileName="${basedir}/log_archived.txt" 
      fileName="log.txt" /> 
     </targets> 

     <rules> 
     <logger name="*" minlevel="Info" writeTo="file" /> 
     </rules> 
    </nlog> 

在我的項目的代碼如下:

//Step1 
    for (int i = 0; i < 100; i++) 
    { 
     logger.Fatal("Sample fatal error message:: {0}", i); 
    } 

    //Step2 
    var nlogConfigFile = "NLog.config"; 
    var xdoc = XDocument.Load(nlogConfigFile); 
    var ns = xdoc.Root.GetDefaultNamespace(); 
    var fileTarget = xdoc.Descendants(ns + "target").FirstOrDefault(t => (string)t.Attribute("name") == "file"); 
    fileTarget.Attribute("archiveAboveSize").SetValue(8000); 
    xdoc.Save(nlogConfigFile); 

    //Step3 
    for (int i = 0; i < 100; i++) 
    { 
     logger.Fatal("Sample fatal error message:: {0}", i); 
    } 

在第一步結束。我有一個2KB的log.txt。然後在第2步中,我將archiveAboveSize更改爲8K。然後在第3步結束時,我應該有一個8K的log.txt。但它沒有發生。該文件保持2KB。但是如果我關閉應用程序並再次運行它,則log.txt大小爲8KB。爲什麼在第3步的末尾不我與了關閉應用

回答

2

您需要重新加載NLOG的配置步驟3之前8KB的文件大小:

LogManager.Configuration = LogManager.Configuration.Reload(); 
+1

純迷死人!再次感謝 – user2968369

相關問題