using NLog; using System; using System.Text.Json; namespace Mirle.Component.Record { /// /// 記錄錯誤擴充方法類別 /// public static class LogErrorExtension { /// /// 紀錄錯誤資訊 /// /// 紀錄器 /// 方法名稱 /// 例外錯誤 /// 參數 public static void LogError(this Logger log, string funcName, Exception ex, string param = "None") { log.Error($"[{funcName}] | [{param}] | {ex.Message}"); log.Error($"========= Error Stack Start ====== \r\n " + $"{ex.StackTrace} \r\n" + $"========= Error Stack End ========"); } /// /// 記錄錯誤資訊 /// /// 紀錄器 /// 方法名稱 /// 錯誤訊息 /// 參數 public static void LogError(this Logger log, string funcName, string errorMessage, string param = "None") { log.Error($"[{funcName}] | [{param}] | {errorMessage}"); } /// /// 記錄錯誤資料 /// /// 資料類別 /// 紀錄器 /// 方法名稱 /// 錯誤資料 /// 例外錯誤 /// 參數 public static void LogErrorData(this Logger log, string tableName, T data, Exception ex, string param = "None") { log.Error($"Error Data: {JsonSerializer.Serialize(data)}"); log.Error($"[false] | [{tableName}] | {ex.Message} \r\n" + $"========= Error Stack Start ========== \r\n" + $"{ex.StackTrace} \r\n" + $"========= Error Stack End ============"); } } }