Skip to content

Commit 22a23fb

Browse files
committed
refactor(Logger): 移除LogOptions中的模板配置并优化日志处理逻辑
移除LogOptions中不再使用的ConsoleOutputTemplate和FileOutputTemplate属性,改为在LogHandler中使用固定模板。新增支持LogType的日志输出,并根据是否包含TagName自动选择对应模板,简化配置并提高灵活性。
1 parent 6a96aa6 commit 22a23fb

2 files changed

Lines changed: 16 additions & 38 deletions

File tree

GameFrameX.Foundation.Logger/LogHandler.cs

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,22 @@ public static LoggerConfiguration CreateLoggerConfiguration()
5757
/// <summary>
5858
/// 控制台输出模板,用于格式化控制台日志输出。
5959
/// </summary>
60-
const string ConsoleOutputTemplate = "[{Timestamp:HH:mm:ss} {Level:u3}][{TagName}]{Message:lj}{NewLine}{Exception}";
60+
const string ConsoleOutputTemplate = "[{Timestamp:HH:mm:ss} {Level:u3}][{LogType}]{Message:lj}{NewLine}{Exception}";
61+
62+
/// <summary>
63+
/// 控制台输出模板,用于格式化控制台日志输出,包含标签名称。
64+
/// </summary>
65+
const string ConsoleOutputTagNameTemplate = "[{Timestamp:HH:mm:ss} {Level:u3}][{LogType}-{TagName}]{Message:lj}{NewLine}{Exception}";
6166

6267
/// <summary>
6368
/// 文件输出模板,用于格式化文件日志输出。
6469
/// </summary>
65-
const string FileOutputTemplate = "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}][{TagName}]{Message:lj}{NewLine}{Exception}";
70+
const string FileOutputTemplate = "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}][{LogType}]{Message:lj}{NewLine}{Exception}";
71+
72+
/// <summary>
73+
/// 文件输出模板,用于格式化文件日志输出,包含标签名称。
74+
/// </summary>
75+
const string FileOutputTagNameTemplate = "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}][{LogType}-{TagName}]{Message:lj}{NewLine}{Exception}";
6676

6777
/// <summary>
6878
/// 启动并配置日志系统。
@@ -122,6 +132,7 @@ public static ILogger Create(LogOptions logOptions, bool isDefault = true, Actio
122132

123133
var logger = CreateLoggerConfiguration();
124134
logger.Enrich.WithProperty("TagName", logOptions.LogTagName);
135+
logger.Enrich.WithProperty("LogType", logOptions.LogType);
125136

126137
if (logOptions.IsGrafanaLoki)
127138
{
@@ -182,16 +193,11 @@ public static ILogger Create(LogOptions logOptions, bool isDefault = true, Actio
182193

183194
configurationAction?.Invoke(logger);
184195
string consoleOutputTemplate = ConsoleOutputTemplate;
185-
186-
if (logOptions.ConsoleOutputTemplate.IsNotNullOrEmptyOrWhiteSpace())
187-
{
188-
consoleOutputTemplate = logOptions.ConsoleOutputTemplate;
189-
}
190-
191196
string fileOutputTemplate = FileOutputTemplate;
192-
if (logOptions.FileOutputTemplate.IsNotNullOrEmptyOrWhiteSpace())
197+
if (logOptions.LogTagName.IsNotNullOrEmptyOrWhiteSpace())
193198
{
194-
fileOutputTemplate = logOptions.FileOutputTemplate;
199+
consoleOutputTemplate = ConsoleOutputTagNameTemplate;
200+
fileOutputTemplate = FileOutputTagNameTemplate;
195201
}
196202

197203
if (logOptions.IsWriteToMongoDb)

GameFrameX.Foundation.Logger/LogOptions.cs

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -198,34 +198,6 @@ public LogOptions(string logPathName = "logs")
198198
/// </remarks>
199199
public int? RetainedFileCountLimit { get; set; } = 31;
200200

201-
/// <summary>
202-
/// 控制台日志输出格式模板,默认格式为 "[时:分:秒 级别][标签名]消息内容"。
203-
/// </summary>
204-
/// <remarks>
205-
/// 支持的占位符包括:
206-
/// - {Timestamp:HH:mm:ss} - 时间戳(时:分:秒格式)
207-
/// - {Level:u3} - 日志级别(3个字符大写)
208-
/// - {TagName} - 日志标签名称
209-
/// - {Message:lj} - 日志消息内容(左对齐)
210-
/// - {NewLine} - 换行符
211-
/// - {Exception} - 异常信息
212-
/// </remarks>
213-
public string ConsoleOutputTemplate { get; set; } = "[{Timestamp:HH:mm:ss} {Level:u3}][{TagName}]{Message:lj}{NewLine}{Exception}";
214-
215-
/// <summary>
216-
/// 文件日志输出格式模板,默认格式为 "完整时间戳 [级别][友好名称] 消息内容"。
217-
/// </summary>
218-
/// <remarks>
219-
/// 支持的占位符包括:
220-
/// - {Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} - 完整时间戳(包含毫秒和时区)
221-
/// - {Level:u3} - 日志级别(3个字符大写)
222-
/// - {TagName} - 日志标签名称
223-
/// - {Message:lj} - 日志消息内容(左对齐)
224-
/// - {NewLine} - 换行符
225-
/// - {Exception} - 异常信息
226-
/// </remarks>
227-
public string FileOutputTemplate { get; set; } = "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}][{TagName}]{Message:lj}{NewLine}{Exception}";
228-
229201
/// <summary>
230202
/// 返回日志配置对象的 JSON 字符串表示形式。
231203
/// </summary>

0 commit comments

Comments
 (0)