wanshenmean
12 小时以前 853f7a71577bd8694c848985e1eb21c74d30eba9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
using Serilog;
using WIDESEAWCS_Core.LogHelper;
 
namespace WIDESEAWCS_Tasks;
 
/// <summary>
/// Quartz 作业日志帮助类 - 统一封装 ILogger 和 QuartzLogger 的双通道日志记录
/// </summary>
/// <remarks>
/// 所有 Quartz Job 中需要同时写入 ILogger(Serilog)和 QuartzLogger(文件日志)的场景,
/// 统一调用此帮助类的方法,避免重复编写两行日志代码。
/// </remarks>
public static class QuartzLogHelper
{
    /// <summary>
    /// 记录错误日志(带异常对象)
    /// </summary>
    /// <param name="logger">ILogger 实例</param>
    /// <param name="ex">异常对象</param>
    /// <param name="loggerMessage">ILogger 的结构化日志模板(支持占位符)</param>
    /// <param name="quartzMessage">QuartzLogger 的日志消息</param>
    /// <param name="deviceCode">设备编码</param>
    /// <param name="args">ILogger 结构化日志的参数</param>
    public static void LogError(ILogger logger, Exception ex, string loggerMessage, string quartzMessage, string deviceCode, params object[] args)
    {
        logger.Error(ex, loggerMessage, args);
        QuartzLogger.Error(quartzMessage, deviceCode, ex);
    }
 
    /// <summary>
    /// 记录错误日志(不带异常对象)
    /// </summary>
    /// <param name="logger">ILogger 实例</param>
    /// <param name="loggerMessage">ILogger 的结构化日志模板(支持占位符)</param>
    /// <param name="quartzMessage">QuartzLogger 的日志消息</param>
    /// <param name="deviceCode">设备编码</param>
    /// <param name="args">ILogger 结构化日志的参数</param>
    public static void LogError(ILogger logger, string loggerMessage, string quartzMessage, string deviceCode, params object[] args)
    {
        logger.Error(loggerMessage, args);
        QuartzLogger.Error(quartzMessage, deviceCode);
    }
 
    /// <summary>
    /// 记录错误日志(不带异常对象)
    /// </summary>
    /// <param name="logger">ILogger 实例</param>
    /// <param name="loggerMessage">ILogger 的结构化日志模板(支持占位符)</param>
    /// <param name="deviceCode">设备编码</param>
    public static void LogError(ILogger logger, string loggerMessage, string deviceCode)
    {
        logger.Error(loggerMessage);
        QuartzLogger.Error(loggerMessage, deviceCode);
    }
 
    /// <summary>
    /// 记录信息日志
    /// </summary>
    /// <param name="logger">ILogger 实例</param>
    /// <param name="loggerMessage">ILogger 的结构化日志模板(支持占位符)</param>
    /// <param name="quartzMessage">QuartzLogger 的日志消息</param>
    /// <param name="deviceCode">设备编码</param>
    /// <param name="args">ILogger 结构化日志的参数</param>
    public static void LogInfo(ILogger logger, string loggerMessage, string quartzMessage, string deviceCode, params object[] args)
    {
        logger.Information(loggerMessage, args);
        QuartzLogger.Info(quartzMessage, deviceCode);
    }
 
    /// <summary>
    /// 记录信息日志
    /// </summary>
    /// <param name="logger">ILogger 实例</param>
    /// <param name="loggerMessage">ILogger 的结构化日志模板</param>
    /// <param name="quartzMessage">QuartzLogger 的日志消息</param>
    /// <param name="deviceCode">设备编码</param>
    public static void LogInfo(ILogger logger, string loggerMessage, string deviceCode)
    {
        logger.Information(loggerMessage);
        QuartzLogger.Info(loggerMessage, deviceCode);
    }
 
    /// <summary>
    /// 记录警告日志
    /// </summary>
    /// <param name="logger">ILogger 实例</param>
    /// <param name="loggerMessage">ILogger 的结构化日志模板(支持占位符)</param>
    /// <param name="quartzMessage">QuartzLogger 的日志消息</param>
    /// <param name="deviceCode">设备编码</param>
    /// <param name="args">ILogger 结构化日志的参数</param>
    public static void LogWarn(ILogger logger, string loggerMessage, string quartzMessage, string deviceCode, params object[] args)
    {
        logger.Warning(loggerMessage, args);
        QuartzLogger.Warn(quartzMessage, deviceCode);
    }
 
    /// <summary>
    /// 记录警告日志
    /// </summary>
    /// <param name="logger">ILogger 实例</param>
    /// <param name="loggerMessage">ILogger 的结构化日志模板(支持占位符)</param>
    /// <param name="deviceCode">设备编码</param>
    public static void LogWarn(ILogger logger, string loggerMessage,string deviceCode)
    {
        logger.Warning(loggerMessage);
        QuartzLogger.Warn(loggerMessage, deviceCode);
    }
 
    /// <summary>
    /// 记录调试日志
    /// </summary>
    /// <param name="logger">ILogger 实例</param>
    /// <param name="loggerMessage">ILogger 的结构化日志模板(支持占位符)</param>
    /// <param name="quartzMessage">QuartzLogger 的日志消息</param>
    /// <param name="deviceCode">设备编码</param>
    /// <param name="args">ILogger 结构化日志的参数</param>
    public static void LogDebug(ILogger logger, string loggerMessage, string quartzMessage, string deviceCode, params object[] args)
    {
        logger.Debug(loggerMessage, args);
        QuartzLogger.Debug(quartzMessage, deviceCode);
    }
 
    /// <summary>
    /// 记录调试日志
    /// </summary>
    /// <param name="logger">ILogger 实例</param>
    /// <param name="loggerMessage">ILogger 的结构化日志模板(支持占位符)</param>
    /// <param name="quartzMessage">QuartzLogger 的日志消息</param>
    /// <param name="deviceCode">设备编码</param>
    /// <param name="args">ILogger 结构化日志的参数</param>
    public static void LogDebug(ILogger logger, string loggerMessage, string deviceCode)
    {
        logger.Debug(loggerMessage);
        QuartzLogger.Debug(loggerMessage, deviceCode);
    }
}