mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-06 16:16:44 +08:00
- 新增 GodotLogger 的配置加载、延迟入口和宿主输出适配实现。 - 复制 ai-libs/GodotLogger 的 MIT 许可证到 third-party-licenses/GodotLogger/LICENSE。 - 补充 active tracking 与 trace,保留下一阶段对齐点。
2.7 KiB
2.7 KiB
Godot Logging Compliance Polish 追踪
2026-05-02
阶段:GodotLogger 优点吸收与宿主层补齐(RP-001)
- 复核
GodotLogger与GFramework.Godot.Logging后确认:- 模板、颜色、Debug/Release 双模式、类别缩写和 Godot 输出路由已基本吸收
- 真正缺口主要在宿主接入与运行期配置层,而不是输出格式层
- 本轮新建
godot-logging-compliance-polishtopic,并将当前分支feat/godot-logging-compliance-polish映射到该主题 - 为
GFramework.Godot.Logging新增:GodotLogDeferredLoggerGodotLogConfigurationSourceGodotLoggerSettingsGodotLoggerSettingsLoader
- 关键实现决策:
- 不把
Microsoft.Extensions.Logging的 builder / provider 生态整套移植进来 - 保持
LoggerFactoryResolver与ArchitectureConfiguration仍是主接线方式 - 只吸收
GodotLogger里对 GFramework 现有模型真正有价值的部分:- 配置自动发现
- 热重载
- 延迟 logger 初始化
- 配置命名兼容
- 不把
- 为让热重载作用于已缓存 logger,调整
AbstractLogger支持动态最小级别提供器,并让GodotLoggerFactoryProvider/GodotLogger在写入和级别判定时读取最新设置 - 为让结构化日志在 Godot 侧不再退化成纯字符串,扩展:
GodotLogRenderContextGodotLogTemplateGodotLoggerOptionsGodotLogger使默认模板支持{properties},并将IStructuredLogger/LogContext属性渲染到输出中
- 为兼容
GodotLogger原项目配置习惯,在GodotLoggerSettingsLoader中补充枚举解析兼容:Info/InformationFatal/CriticalWarn/Warning
- 同步更新
docs/zh-CN/godot/logging.md,把文档结论从“只有薄适配层”刷新成“已具备宿主便利层和热重载语义” - 已从
ai-libs/GodotLogger复制 MIT 许可证到third-party-licenses/GodotLogger/LICENSE
验证
dotnet test GFramework.Godot.Tests/GFramework.Godot.Tests.csproj -c Release --filter FullyQualifiedName~GodotLog -nologo- 结果:通过(11/11)
dotnet test GFramework.Godot.Tests/GFramework.Godot.Tests.csproj -c Release -nologo- 结果:通过(69/69)
dotnet test GFramework.Core.Tests/GFramework.Core.Tests.csproj -c Release --filter FullyQualifiedName~Logging -nologo- 结果:通过(214/214)
下一步
- 若继续推进本主题,优先评估 Godot 输出是否应变成 Core 可组合 appender / sink
- 若出现后续 review 反馈,直接在本 topic 追加 RP-002,而不是重新开临时 local-plan
- 若本主题阶段性完成,再把详细实现 history 迁入
archive/,active 入口只保留恢复点与风险