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,保留下一阶段对齐点。
55 lines
2.7 KiB
Markdown
55 lines
2.7 KiB
Markdown
# Godot Logging Compliance Polish 追踪
|
||
|
||
## 2026-05-02
|
||
|
||
### 阶段:GodotLogger 优点吸收与宿主层补齐(RP-001)
|
||
|
||
- 复核 `GodotLogger` 与 `GFramework.Godot.Logging` 后确认:
|
||
- 模板、颜色、Debug/Release 双模式、类别缩写和 Godot 输出路由已基本吸收
|
||
- 真正缺口主要在宿主接入与运行期配置层,而不是输出格式层
|
||
- 本轮新建 `godot-logging-compliance-polish` topic,并将当前分支
|
||
`feat/godot-logging-compliance-polish` 映射到该主题
|
||
- 为 `GFramework.Godot.Logging` 新增:
|
||
- `GodotLog`
|
||
- `DeferredLogger`
|
||
- `GodotLogConfigurationSource`
|
||
- `GodotLoggerSettings`
|
||
- `GodotLoggerSettingsLoader`
|
||
- 关键实现决策:
|
||
- 不把 `Microsoft.Extensions.Logging` 的 builder / provider 生态整套移植进来
|
||
- 保持 `LoggerFactoryResolver` 与 `ArchitectureConfiguration` 仍是主接线方式
|
||
- 只吸收 `GodotLogger` 里对 GFramework 现有模型真正有价值的部分:
|
||
- 配置自动发现
|
||
- 热重载
|
||
- 延迟 logger 初始化
|
||
- 配置命名兼容
|
||
- 为让热重载作用于已缓存 logger,调整 `AbstractLogger` 支持动态最小级别提供器,并让
|
||
`GodotLoggerFactoryProvider` / `GodotLogger` 在写入和级别判定时读取最新设置
|
||
- 为让结构化日志在 Godot 侧不再退化成纯字符串,扩展:
|
||
- `GodotLogRenderContext`
|
||
- `GodotLogTemplate`
|
||
- `GodotLoggerOptions`
|
||
- `GodotLogger`
|
||
使默认模板支持 `{properties}`,并将 `IStructuredLogger` / `LogContext` 属性渲染到输出中
|
||
- 为兼容 `GodotLogger` 原项目配置习惯,在 `GodotLoggerSettingsLoader` 中补充枚举解析兼容:
|
||
- `Info` / `Information`
|
||
- `Fatal` / `Critical`
|
||
- `Warn` / `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)
|
||
|
||
### 下一步
|
||
|
||
1. 若继续推进本主题,优先评估 Godot 输出是否应变成 Core 可组合 appender / sink
|
||
2. 若出现后续 review 反馈,直接在本 topic 追加 RP-002,而不是重新开临时 local-plan
|
||
3. 若本主题阶段性完成,再把详细实现 history 迁入 `archive/`,active 入口只保留恢复点与风险
|