2012-08-07 60 views
3

集isdebugenabled我試圖找到一種方法來設置isdebugenabled虛假或配置文件真實,如何NLOG

這樣我就可以打開或關閉,每當我需要的。謝謝 !

+0

不會將日誌級別設置爲更高的值(或關閉)是否完成同樣的事情? – Joe 2012-08-08 13:34:35

+0

好吧,我想如果我知道如何設置isdebugenabled,我可以在代碼中使用它,如if(isdebugenabled)等等等等等等。那麼它可能會以某種方式提高性能。 – maxisam 2012-08-08 14:41:32

回答

5

用一個非常簡單的記錄設置

<targets> 
    <target xsi:type="File" 
      name="debug" 
      fileName="c:\temp\debug.txt" 
      layout="${longdate} ${uppercase:${level}} ${message}" 
    /> 
</targets> 

<rules> 
    <logger name="*" minlevel="Trace" writeTo="debug" /> 
</rules> 

和同樣簡單的代碼示例

class Program 
{ 
    static void Main(string[] args) 
    { 
     var logger = new NLog.LogFactory().GetCurrentClassLogger(); 

     if (logger.IsDebugEnabled) 
     { 
      logger.Debug("this is a debug message"); 
     } 

     logger.Debug("this is another debug message"); 
    } 
} 

minLevel設置爲調試或跟蹤,既logger.Debug語句將寫入日誌。如果您將minLevel提升到更高級別(信息,警告,關閉),那麼這兩條語句都不會寫入日誌。 logger.Debug檢查IsDebugEnabled(從日誌級別推斷)。

通過檢查IsDebugEnabled和更改minLevel爲記錄器切換此方法,您當然可以獲得性能提升(在您要記錄計算值而不僅僅是字符串的情況下)。

+3

我以爲NLog會有一個名爲enabledebug ='false'的配置設置。他們應該在文件中指出這一點更爲明顯。感謝您的幫助! – maxisam 2012-08-08 20:40:13