GwWuYou 6475d2c421 fix(logging): 调整日志级别输出方法
- 将 Fatal 级别日志从 PrintErr 改为 PushError
- 重新排列 switch 语句中的 case 顺序
- 确保 Fatal 和 Error 级别使用正确的 Godot 日志方法
2026-01-02 09:58:43 +08:00

39 lines
1.1 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 prefix = $"[{level.ToString().ToUpper()}][{Name()}]";
// 将异常信息追加到日志消息中
if (exception != null) message += "\n" + exception;
// 根据日志级别选择不同的输出方法
switch (level)
{
case LogLevel.Fatal:
GD.PushError($"{prefix} {message}");
break;
case LogLevel.Error:
GD.PrintErr($"{prefix} {message}");
break;
case LogLevel.Warning:
GD.PushWarning($"{prefix} {message}");
break;
default:
GD.Print($"{prefix} {message}");
break;
}
}
}