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 ============");
}
}
}