Skip to content

feat: gzip rotated logs and bound diagnostic retention - #35

Merged
MistEO merged 2 commits into
masterfrom
codex/gzip-log-maintenance
Nov 13, 2026
Merged

MistEO merged 2 commits into
masterfrom
codex/gzip-log-maintenance

Conversation

@MistEO

@MistEO MistEO commented Nov 13, 2026 •

Copy link
Copy Markdown
Member

将日志轮转阈值从 16 MiB 提高到 128 MiB,复用现有 zlib,以 gzip level 6 在后台压缩已完成轮转的日志,减少历史诊断文件占用。

  • 常规维护间隔至少 5 分钟,初始化和成功轮转可立即触发;单次只运行一个维护任务。
  • 历史日志和错误截图保留 7 天,vision 图片保留 3 天;历史产物预算 1 GiB,优先清理 vision 图片,其次日志、错误截图。仅处理框架自己的诊断文件。
  • 归档成功后才删除原日志,保留原始修改时间;压缩中断后可在下次启动继续处理。
  • Windows 使用持有 DLL 引用的线程池回调,避免进程退出时等待已终止的压缩线程;切换或关闭日志目录会等待之前的维护完成。

验证:Linux/Clang 20 本地构建及 422 项单元测试通过;Windows、Linux、macOS CI 测试全部通过,其中 9 项日志测试覆盖压缩、轮转、保留期限、容量淘汰、写入失败、符号链接和压缩期间退出。Windows x86_64/ARM64 构建通过。

配套 PR:https://github.com/MaaXYZ/MaaFramework/pull/1621。先合并本 PR,再将 MaaFramework 子模块更新至合并后的提交。

AI 使用信息:

  • Agent:codex
  • 模型:gpt-6-astra
  • 思考强度:max

Copilot AI balanced review requested due to automatic review settings November 13, 2026 09:45

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@sourcery-ai

sourcery-ai Bot commented Nov 13, 2026

Copy link
Copy Markdown

Sorry @MistEO, you've used your own review budget of 250,000 diff characters for the last 7 days.

You can request another review in 5 days and 17 hours by commenting @sourcery-ai review. Upgrade to get a review now.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 13, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-13T09:47:22.427913Z 9d7e8b1 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@MistEO
MistEO merged commit af3fce7 into master Nov 13, 2026
1 check passed
MistEO added a commit to MaaXYZ/MaaFramework that referenced this pull request Nov 13, 2026
任务结束后调度 MaaUtils 的后台日志维护,使用 gzip level 6
压缩轮转备份,并清理过期或超出预算的历史诊断文件。轮转阈值提高到 128 MiB,沿用现有的轮转检查时机。

- 更新 MaaUtils 子模块,包含压缩、保留策略及 Windows 进程退出处理。
- 中英文问题反馈文档仅补充 `.log.gz` 备份的上传说明。
- 新增 9 项回归测试,覆盖压缩、轮转阈值、保留期限、容量淘汰、写入失败、符号链接和压缩期间退出后恢复。

验证:本地 422 项单元测试通过;[Windows、Linux、macOS CI
测试全部通过](https://github.com/MaaXYZ/MaaFramework/actions/runs/43408175447),[8
个平台构建及 Node.js、NuGet、Python
打包全部通过](https://github.com/MaaXYZ/MaaFramework/actions/runs/43408175591)。

配套 [MaaUtils #35](MaaXYZ/MaaUtils#35)
已合并,子模块固定至合并提交
`af3fce72982c009ad55c02f47b41e13082738eb9`。最终仅调整子模块提交引用,已核对 Utils 源码树与上述
CI 测试的版本完全一致。

AI 使用信息:
- Agent:codex
- 模型:gpt-6-astra
- 思考强度:max

## Sourcery 摘要

在任务完成后保留并维护压缩后的诊断日志,同时增加保留策略保护,并为上传归档日志提供用户指引。

错误修复:
- 通过压缩符合条件的备份,在维护或压缩失败时安全保留文件,确保任务完成后仍可保留诊断日志。

功能增强:
- 将日志轮转阈值提高至 128 MiB,并对历史日志和诊断文件应用保留策略及存储预算清理,同时保护活动日志、无关文件和符号链接。

文档:
- 更新英文和中文故障排查指南,支持上传压缩的 `.log.gz` 备份。

测试:
- 增加回归测试,覆盖压缩、轮转阈值、保留策略、基于预算的清理、故障恢复、中断的维护操作以及符号链接处理。

杂项:
- 更新 MaaUtils 子模块,纳入日志维护和 Windows 进程退出处理方面的更改。

<details>
<summary>Original summary in English</summary>

## Summary by Sourcery

Preserve and maintain compressed diagnostic logs after task completion
while adding retention safeguards and user guidance for uploading
archived logs.

Bug Fixes:
- Maintain diagnostic logs after task completion by compressing eligible
backups and safely preserving files when maintenance or compression
fails.

Enhancements:
- Raise log rotation to 128 MiB and apply retention and storage-budget
cleanup for historical logs and diagnostic artifacts while protecting
active logs, unrelated files, and symlinks.

Documentation:
- Update English and Chinese troubleshooting guidance to support
uploading compressed `.log.gz` backups.

Tests:
- Add regression coverage for compression, rotation thresholds,
retention, budget-based cleanup, failure recovery, interrupted
maintenance, and symlink handling.

Chores:
- Update the MaaUtils submodule to include the log maintenance and
Windows process-exit handling changes.

</details>
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