From d5d34a626c99594ed2af9445a718a34ac2f0aaaa Mon Sep 17 00:00:00 2001 From: gewuyou <95328647+GeWuYou@users.noreply.github.com> Date: Sun, 3 May 2026 19:07:20 +0800 Subject: [PATCH] =?UTF-8?q?docs(godot):=20=E4=BF=AE=E5=A4=8D=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E7=BB=84=E5=90=88=E6=96=87=E6=A1=A3=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复组合 logger 示例重复创建文件 appender 的生命周期问题 - 更新 Core logging 文档中的平台无关路径示例 - 补充 Godot 日志页面的路径解析指引承接 --- docs/zh-CN/core/logging.md | 15 ++++++++------- docs/zh-CN/godot/logging.md | 9 +++++---- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/docs/zh-CN/core/logging.md b/docs/zh-CN/core/logging.md index 9226d12d..7ffb22a5 100644 --- a/docs/zh-CN/core/logging.md +++ b/docs/zh-CN/core/logging.md @@ -97,11 +97,12 @@ using GFramework.Godot.Logging; public sealed class GodotCompositeLoggerFactoryProvider : ILoggerFactoryProvider { - private readonly string _filePath; + private readonly GodotLogAppender _godotAppender = new(); + private readonly AsyncLogAppender _fileAppender; public GodotCompositeLoggerFactoryProvider(string filePath) { - _filePath = filePath; + _fileAppender = new AsyncLogAppender(new FileAppender(filePath, new DefaultLogFormatter())); } public LogLevel MinLevel { get; set; } = LogLevel.Info; @@ -111,21 +112,20 @@ public sealed class GodotCompositeLoggerFactoryProvider : ILoggerFactoryProvider return new CompositeLogger( name, MinLevel, - new GodotLogAppender(), - new AsyncLogAppender(new FileAppender(_filePath, new DefaultLogFormatter()))); + _godotAppender, + _fileAppender); } } ``` -在 Godot 宿主里,文件路径应先解析成普通文件系统路径,再挂到架构配置: +把 provider 挂到架构配置时,传入已经解析好的普通文件系统路径: ```csharp using GFramework.Core.Abstractions.Logging; using GFramework.Core.Abstractions.Properties; using GFramework.Core.Architectures; -using Godot; -var logPath = ProjectSettings.GlobalizePath("user://logs/game.log"); +var logPath = "path/to/game.log"; var configuration = new ArchitectureConfiguration { LoggerProperties = new LoggerProperties @@ -139,6 +139,7 @@ var configuration = new ArchitectureConfiguration ``` `GodotLogAppender` 只负责 Godot 控制台落点;文件生命周期、异步缓冲、formatter 与过滤规则仍然来自 Core logging 组件。 +Godot 项目的 `user://` 路径解析方式见 [Godot 日志集成](../godot/logging.md#_3-组合-godot-控制台和文件输出)。 ## 什么时候该换 provider diff --git a/docs/zh-CN/godot/logging.md b/docs/zh-CN/godot/logging.md index c54607bf..a668b47f 100644 --- a/docs/zh-CN/godot/logging.md +++ b/docs/zh-CN/godot/logging.md @@ -230,11 +230,12 @@ using GFramework.Godot.Logging; public sealed class GodotCompositeLoggerFactoryProvider : ILoggerFactoryProvider { - private readonly string _filePath; + private readonly GodotLogAppender _godotAppender = new(); + private readonly AsyncLogAppender _fileAppender; public GodotCompositeLoggerFactoryProvider(string filePath) { - _filePath = filePath; + _fileAppender = new AsyncLogAppender(new FileAppender(filePath, new DefaultLogFormatter())); } public LogLevel MinLevel { get; set; } = LogLevel.Info; @@ -244,8 +245,8 @@ public sealed class GodotCompositeLoggerFactoryProvider : ILoggerFactoryProvider return new CompositeLogger( name, MinLevel, - new GodotLogAppender(), - new AsyncLogAppender(new FileAppender(_filePath, new DefaultLogFormatter()))); + _godotAppender, + _fileAppender); } } ```