feat(logging): 更新 Godot 日志记录器实现

- 添加时间戳格式化到日志前缀中
- 为日志级别字符串添加右对齐格式
- 将异常信息直接追加到日志消息中
- 更新致命错误、错误、警告和普通日志的输出方法
- 添加了更详细的日志格式包括时间戳、级别和名称
This commit is contained in:
GwWuYou 2026-01-02 12:52:58 +08:00
parent 333cefa84e
commit 6b8a8660ef

View File

@ -13,26 +13,32 @@ public sealed class GodotLogger(
{ {
protected override void Write(LogLevel level, string message, Exception? exception) protected override void Write(LogLevel level, string message, Exception? exception)
{ {
var prefix = $"[{level.ToString().ToUpper()}][{Name()}]"; 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; if (exception != null)
{
message += "\n" + exception;
}
// 根据日志级别选择不同的输出方法 var logMessage = $"{logPrefix} {message}";
// 根据日志级别选择 Godot 输出方法
switch (level) switch (level)
{ {
case LogLevel.Fatal: case LogLevel.Fatal:
GD.PushError($"{prefix} {message}"); GD.PushError(logMessage);
break; break;
case LogLevel.Error: case LogLevel.Error:
GD.PrintErr($"{prefix} {message}"); GD.PrintErr(logMessage);
break; break;
case LogLevel.Warning: case LogLevel.Warning:
GD.PushWarning($"{prefix} {message}"); GD.PushWarning(logMessage);
break; break;
default: default: // Trace / Debug / Info
GD.Print($"{prefix} {message}"); GD.Print(logMessage);
break; break;
} }
} }