3
_log.Error("Message", exception)
的首選形式不記錄我的堆棧跟蹤。爲了解決這個問題,我必須確保.ToString()通過執行以下操作來調用異常。
_log.Error("Message" + exception);
但我知道這是錯誤的,只是我不能做出正確的版本。在我的log4net.xml文件中是否需要一個特殊行來使其工作?
_log.Error("Message", exception)
的首選形式不記錄我的堆棧跟蹤。爲了解決這個問題,我必須確保.ToString()通過執行以下操作來調用異常。
_log.Error("Message" + exception);
但我知道這是錯誤的,只是我不能做出正確的版本。在我的log4net.xml文件中是否需要一個特殊行來使其工作?
我想提供我最終的答案,僅供參考。我已經實現用我的答案SO問題How do I create an asynchronous wrapper for log4net?
我在我的迴應指出,你必須要小心的FixFlags爲log4net的異步附加器方案,因爲任何沒有在FixFlags將得到從原來的日誌事件下降。不幸的是,我沒有將FixFlags.Exception添加到我原來的解決方案中,因此在轉發過程中生成的任何異常都會被丟棄。
從
loggingEvent.Fix = FixFlags.ThreadName;
更改我的FixFlags要
loggingEvent.Fix = FixFlags.ThreadName | FixFlags.Exception;
固定的問題。
你的例外中有一個「StackTrace」?換句話說:你的異常被拋出,或者被簡單創建並傳遞給方法「錯誤」?在第二種情況下(創建但不拋出)將不會有Stacktrace。 – Hailton 2012-07-17 21:29:48
引發,我測試它通過調用拋出新的異常(「請給我一個跟蹤」) – 2012-07-17 21:36:02
你嘗試使用「例外」「轉換模式名稱」?所以你的「ConversionPattern」應該是這樣的:「%d {ABSOLUTE}%-5p%c {1}:%L - %m%n%異常」 – Hailton 2012-07-17 22:33:32