macOS 日志管理默认启用 Unified Logging 自动归档、压缩与空间感知清理,应通过 log config 设置保留策略(如 --mode "persist:keep-14-days" 或 "persist:limited=2G"),配合 newsyslog 管理 /var/log 传统日志,并用 Console.app 查看导出 .logarchive 归档。
macos 日志管理不依赖第三方工具就能满足大多数需求——系统原生的 unified logging 已默认启用自动归档、压缩与空间感知清理,配合 console.app 和命令行工具即可完成高效分析。重点是理解机制、合理配置策略,而非堆砌外部组件。
确认统一日志系统(Unified Logging)正常运行
macOS 10.12 起统一日志即为默认机制,所有系统与应用日志由 log 命令统一调度,底层存储在受保护的二进制数据库中(/var/db/diagnostics/ 和 /var/db/uuidtext/),不以明文日志文件持续写入。
- 运行
log show --last 1h | head -5,能输出近期日志 → 表明服务活跃且可查 - 运行
log stats,查看 “Data stores” 条目是否包含多个时间戳(如 “7 days ago”、“30 days ago”)→ 表明自动归档已生效 - 避免手动删除
/var/db/diagnostics/下任何文件,否则可能破坏诊断报告生成或导致 Console 无法加载归档
用 log config 设置自动归档与清理策略
这是最安全、最推荐的配置方式:通过磁盘用量或保留时长约束,让系统自动淘汰旧数据,无需脚本干预。
- 限制总占用不超过 2GB:
sudo log config --mode "persist:limited=2G" - 保留最近 14 天日志:
sudo log config --mode "persist:keep-14-days" - 恢复系统默认策略(按磁盘压力自动清理):
sudo log config --mode "level:default" - 查看当前设置:
log config --status,该配置重启后仍有效
管理 /var/log/ 下的传统日志轮转
部分服务(如 system.log、install.log)仍由 newsyslog 管理,其行为由 /etc/newsyslog.conf 控制。
- 检查配置是否启用压缩:
cat /etc/newsyslog.conf | grep "/var/log/system.log",确保行末含z(gzip)标志 - 修改保留数量(例如保留 7 个归档):
/var/log/system.log 644 7 * @T00 Z中的7即为归档数 - 模拟轮转测试:
sudo newsyslog -nvv,确认无报错后再保存配置 - 归档文件形如
system.log.0.gz,系统每小时自动触发一次轮转,无需重启服务
用 Console.app 高效查看与导出归档日志
归档的价值在于可查可用,Console 是 macOS 官方支持的完整日志分析界面。
- 双击任意
.logarchive文件(如从“活动监视器”导出的诊断报告),自动在 Console 中打开并支持时间筛选、关键词搜索、列排序 - 在 Console 左侧选择“报告”,可浏览系统自动生成的归档集合
- 导出特定时段日志:选中时间范围 → 右键 → “导出所选内容” → 保存为文本或 JSON 格式
- 系统设置 → 通用 → 存储管理 → 系统数据 → 管理 → 日志文件,若显示“可删除”,说明系统已识别出可安全清理项


















