mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 19:03:29 +08:00
- 统一调整代码注释的缩进格式,保持文档注释的一致性 - 简化对象初始化语法,移除不必要的参数名称指定 - 优化条件语句结构,移除多余的花括号 - 调整方法实现格式,使用表达式主体语法简化代码 - 标准化代码缩进和空格使用,提升代码可读性 - [skip ci]
42 lines
1.3 KiB
C#
42 lines
1.3 KiB
C#
using GFramework.Core.Abstractions.logging;
|
|
using GFramework.Core.logging;
|
|
using Godot;
|
|
|
|
namespace GFramework.Godot.logging;
|
|
|
|
/// <summary>
|
|
/// Godot平台的日志记录器实现
|
|
/// </summary>
|
|
public sealed class GodotLogger(
|
|
string? name = null,
|
|
LogLevel minLevel = LogLevel.Info) : AbstractLogger(name ?? RootLoggerName, minLevel)
|
|
{
|
|
protected override void Write(LogLevel level, string message, Exception? exception)
|
|
{
|
|
var timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
|
var levelStr = level.ToString().ToUpper().PadRight(7);
|
|
var logPrefix = $"[{timestamp}] {levelStr} [{Name()}]";
|
|
|
|
// 添加异常信息
|
|
if (exception != null) message += "\n" + exception;
|
|
|
|
var logMessage = $"{logPrefix} {message}";
|
|
|
|
// 根据日志级别选择 Godot 输出方法
|
|
switch (level)
|
|
{
|
|
case LogLevel.Fatal:
|
|
GD.PushError(logMessage);
|
|
break;
|
|
case LogLevel.Error:
|
|
GD.PrintErr(logMessage);
|
|
break;
|
|
case LogLevel.Warning:
|
|
GD.PushWarning(logMessage);
|
|
break;
|
|
default: // Trace / Debug / Info
|
|
GD.Print(logMessage);
|
|
break;
|
|
}
|
|
}
|
|
} |