GwWuYou 14c7dadee2 refactor(logging): 统一日志记录器的根日志名称引用
- 将 ConsoleLogger 中的 ILogger.RootLoggerName 替换为 RootLoggerName
- 将 NoopLogger 中的 ILogger.RootLoggerName 替换为 RootLoggerName
- 将 GodotLogger 中的 ILogger.RootLoggerName 替换为 RootLoggerName
- 更新 ContextAwareGenerator 生成的文件路径格式,包含完整命名空间路径
2025-12-28 12:06:10 +08:00

37 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.Error:
case LogLevel.Fatal:
GD.PrintErr($"{prefix} {message}");
break;
case LogLevel.Warning:
GD.PushWarning($"{prefix} {message}");
break;
default:
GD.Print($"{prefix} {message}");
break;
}
}
}