mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-23 03:04:29 +08:00
- 添加时间戳格式化到日志前缀中 - 为日志级别字符串添加右对齐格式 - 将异常信息直接追加到日志消息中 - 更新致命错误、错误、警告和普通日志的输出方法 - 添加了更详细的日志格式包括时间戳、级别和名称
45 lines
1.3 KiB
C#
45 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;
|
|
}
|
|
}
|
|
} |