2010-04-09 32 views
4

我正在使用Log4Net來登錄多層次的企業應用程序。我知道當我用Log4Net登錄一個異常時,它會自動暴露這個異常StackTrace,但是我想爲每個日誌調用記錄StackTrace,即使這些不是異常拋出。如何爲log4net中的每個日誌調用添加StackTrace?

爲什麼我需要嗎?...... 我想知道日誌的呼叫源(鑽到層...)

感謝所有...

蒂亞戈迪亞斯

回答

3

我來解決我的問題。 我已經在我自己的方法中包裝了log4net,並創建了LoggingEvent實例。在每個實例中,我都使用了一個Environment.StackTrace屬性。

這樣我在應用程序中有StackTrace foreach日誌事件,即使沒有例外被拋出。

謝謝大家..

1

您可以使用%位置獲取調用方方法名稱和行號,但不能擴展log4net而不是整個堆棧跟蹤。檢查迴應這個問題:

Does log4net support including the call stack in a log message

還要檢查apache.org的的PatternLayout文檔頁面的其他位置的詳細信息您可以輸出:

http://logging.apache.org/log4net/release/sdk/log4net.Layout.PatternLayout.html

不知道這是否仍然適用於現代計算機,但log4net文檔警告說,生成呼叫者信息代價高昂。

相關問題