C# winform NLog AOP 記錄全域性未捕獲的異常到日誌

Echo_xxx發表於2024-04-06

媽媽再也不用擔心我找不到bug了 適合中國寶寶的體質

程式入口Main函式新增事件訂閱

   // 註冊全域性異常處理程式
   AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

   Application.Run(new MainForm());

    /// <summary>
    /// 全域性異常處理程式
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
    {
        // 記錄異常資訊
        NLog.LogManager.GetCurrentClassLogger().Error(e);
        // 顯示錯誤訊息給使用者
        Sunny.UI.UIMessageBox.ShowError($"發生了未處理的異常:\\n{e.ExceptionObject}");
    }

配合前面部落格寫的NLog配置 記錄到日誌檔案

C# .Net NLog 日誌配置檔案 自用配置

相關文章