Skip to content

完善日志系统并修复新版 QQ 启动兼容问题#37

Open
sangjie-stack wants to merge 4 commits intocwuom:mainfrom
sangjie-stack:feat/logging-fixes
Open

完善日志系统并修复新版 QQ 启动兼容问题#37
sangjie-stack wants to merge 4 commits intocwuom:mainfrom
sangjie-stack:feat/logging-fixes

Conversation

@sangjie-stack
Copy link
Copy Markdown

改动内容

  • 修复日志初始化阶段的递归依赖风险
    • 去掉 PathTool 在创建目录时反向调用 Logger 的行为,避免 PathTool -> Logger -> LogUtils -> PathTool 的潜在递归问题
  • 统一日志输出与文件落盘逻辑
    • 重构 Logger 与 LogUtils
    • 统一处理日志级别、标签、消息和异常堆栈
    • 文件日志增加时间、级别、线程名、标签等信息
  • 完善日志文件管理能力
    • 支持获取日志根目录
    • 支持清空日志
    • 支持统计日志目录占用
    • 增加简单的过期日志清理机制
  • 增加设置页日志管理入口
    • 新增“日志目录”入口
    • 新增“清空日志”入口
    • 在设置页展示当前日志占用大小
  • 增强 QQMsgViewAdapter 兼容性
    • 不再依赖单一固定方法签名
    • 优先尝试 handleUIState
    • 同时使用更宽松的候选方法匹配逻辑
    • 在运行期增加安全兜底,减少宿主更新后直接报错的情况

影响说明

  • 本次修改主要集中在日志系统和消息内容 View 定位适配,不涉及核心业务功能逻辑
  • 对现有功能的影响范围相对可控
  • 日志开关关闭时,不会额外进行文件日志写入

验证情况

  • 已本地执行 assembleDebug
  • 构建结果:BUILD SUCCESSFUL

补充说明

  • 这次改动同时观察并确认了日志目录生成与日志落盘行为正常
  • 部分已有兼容性异常日志可正常被记录,便于后续继续排查宿主变更带来的问题

@sangjie-stack sangjie-stack changed the title 本次提交主要完善了日志系统,并修复了一处由于宿主签名变化导致的兼容性问题。 完善日志系统并修复新版 QQ 启动兼容问题 Apr 9, 2026
@sangjie-stack
Copy link
Copy Markdown
Author

一、日志系统改进

  • 修复日志初始化阶段的递归依赖风险
    • 去掉 PathTool 在创建目录时反向调用 Logger 的行为,避免 PathTool -> Logger -> LogUtils -> PathTool 的潜在递归问题
  • 统一日志输出与文件落盘逻辑
    • 重构 Logger 与 LogUtils
    • 统一处理日志级别、标签、消息和异常堆栈
    • 文件日志增加时间、级别、线程名、标签等信息
  • 完善日志文件管理能力
    • 支持获取日志根目录
    • 支持清空日志
    • 支持统计日志目录占用
    • 增加简单的过期日志清理机制
  • 增加设置页日志管理入口
    • 新增“日志目录”入口
    • 新增“清空日志”入口
    • 在设置页展示当前日志占用大小

二、兼容性修复

  • 增强 QQMsgViewAdapter 对宿主签名变化的适配能力
    • 不再依赖单一固定方法签名
    • 优先尝试 handleUIState
    • 同时使用更宽松的候选方法匹配逻辑
    • 在运行期增加安全兜底,减少宿主更新后直接报错的情况
  • 修复 QQInterfaces 初始化失败导致的启动闪退问题
    • 放宽 mqqService 字段查找范围
    • 放宽 getMobileQQService() 方法查找范围
    • 兼容父类字段、父类方法及子类返回值场景
    • 增加运行时就绪检查,避免关键对象未初始化时直接继续执行危险调用
    • 初始化失败时改为记录日志而不是直接抛异常
  • 为启动入口增加兜底保护
    • 对 QQInterfaces.update() 的启动阶段调用增加保护,避免内部兼容问题直接带崩宿主

三、影响说明

  • 本次修改主要集中在日志系统和兼容性初始化逻辑,不涉及大范围业务功能重构
  • 日志开关关闭时,不会额外进行文件日志写入
  • 兼容性修复的目标是“失败时优雅降级”,尽量避免因单点反射失败导致整个宿主启动异常

四、验证情况

  • 已在本地代码环境中执行过 assembleDebug 验证
  • 日志目录生成与文件落盘行为已确认正常
  • 对应启动兼容问题已按源码路径完成修复迁移

五、补充说明

  • 此次改动同时提升了错误日志的可观测性,便于后续继续跟踪新版 QQ 宿主结构变化带来的兼容问题

@cwuom
Copy link
Copy Markdown
Owner

cwuom commented Apr 9, 2026

.gitignore 不要删除 之前误提交了很多路径 你把他整理成 /build-logic/convention/build/classes/kotlin/main/gradle/kotlin/dsl/accessors 就行

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants