簡體   English   中英

System.Diagnostics.Trace - 記錄異常的正確方法

[英]System.Diagnostics.Trace - correct way to log exceptions

我正在使用Azure輔助角色中的Trace類。

我想以一種方式記錄異常,這種方式將打印有關異常的所有信息,通常是:

  • 異常消息
  • 異常堆棧跟蹤
  • 遞歸打印內部異常

我只看到一個獲取字符串和參數的Trace.TraceError方法。 是不是有一些等同於Java的日志記錄框架的東西得到異常並且知道如何記錄它? (是的,我正在MS世界中邁出第一步......)

不,沒有。 但是你可以為Exception類編寫一個擴展方法來執行此操作,以便調用

someException.Trace();

Exception類的ToString方法可能會返回您想要的所有內容,因此只需跟蹤它。 您可以添加其他信息(如果堆棧跟蹤不充分,則遞歸內部異常)進程ID,用戶ID,線程ID等在同一方法中。

public static class ExceptionExtensions
{
    public static void Trace(this Exception _this)
    {
        Trace.TraceError("{0:HH:mm:ss.fff} Exception {1}", DateTime.Now, _this);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM