2012-09-19 170 views
3

我NLOG配置如下棧跟蹤沒有被記錄NLOG

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <targets> 
     <target name="file" xsi:type="File" fileName="${basedir}/log${shortdate}.txt" archiveAboveSize="500000" archiveEvery="Day" archiveNumbering="Rolling" maxArchiveFiles="10" layout="${date:format=s}|${level}|${callsite}|${identity}|${message}|${exception:format=stacktrace}"/> 
     <!--<target name="console" xsi:type="Console" />--> 
    </targets> 
    <rules> 
     <logger name="*" minlevel="Debug" writeTo="file" /> 
     <!--<logger name="*" minlevel="Debug" writeTo="console" />--> 
    </rules> 
    </nlog> 

但是,當異常發生時沒有被記錄的堆棧跟蹤。 NLog中是否有錯誤?

我創建圍繞NLOG的包裝,我記錄如下

public void Error(string message, Exception ex) 
    { 
     logger.Error(message, ex); 
    } 

我得到的日誌中的消息,但沒有堆棧跟蹤。

在此先感謝

+1

TrustyCoder - 你可以發佈你正在使用NLog輸出異常的代碼嗎?你是否也在NLog中獲得任何輸出? –

+0

請參閱更新。 – TrustyCoder

回答

6

在佈局試試這個:

${exception:format=ToString} 
+0

它沒有工作我正在使用Nlog 2.0 – TrustyCoder

+1

@TrustyCoder:這很令人困惑。我也使用NLog 2.0,這對我很有用。你確定你正在調用正確的方法重載(即將一個Exception作爲參數的那個)? – StriplingWarrior

+0

爲我工作,Nlog 3.0。 –

4

您是否嘗試過使用logger.ErrorException(message, ex);代替logger.Error?

+1

現在已經過時了。 – SerG

+0

@SerG什麼是過時的? 'ErrorException'?這是記錄在哪裏? – Snixtor

+0

@Snixtor是的。它被記錄在具有'[Obsolete(「使用錯誤(字符串,異常)方法代碼)的代碼中。」)'' – SerG