Mac 日志哪些能删,哪些先留着
Mac 空间不够时,先看日志到底占了多少,再决定要不要删,日志记录的是已经发生的事情,删掉也就失去了排查崩溃和重复报错的线索。找到一个确实很大、知道属于哪个应用的日志,比清空整个 Logs 文件夹更有用,没解决的问题先留报告,一次只改一处。
先找到日志,再决定删什么
Apple 的 Library 目录说明把 Logs 列为诊断记录的位置,并不是让人把整个文件夹删掉,控制台指南则区分了应用报告、系统报告和旧式系统日志。
| 位置 | 看什么 | 先怎么处理 |
|---|---|---|
~/Library/Logs |
当前用户的日志 | 逐个确认文件和所属应用 |
/Library/Logs |
这台电脑共用的报告和日志 | 保留上级目录和用途不明的服务文件 |
~/Library/Logs/DiagnosticReports 和 /Library/Logs/DiagnosticReports |
用户与系统诊断报告 | 问题没解决时先留着 |
/private/var/log |
传统系统日志,包括 system.log |
日常维护交给 macOS |
| 统一日志 | 独立的日志存储,不是一组纯文本文件 | 用控制台查看,不手动删它的存储目录 |
Apple 工程师排查崩溃时也会让开发者检查用户的 DiagnosticReports 文件夹,比起猜文件名,更可靠的是在控制台选中报告,按官方说明在访达中显示,确认它实际放在哪里。
统一日志使用压缩的二进制存储,所以清空一个文本日志目录,并不等于清掉了 Mac 的全部日志,普通整理时让系统管理这部分存储。
只看大小,先不删除
下面的终端命令只显示大小,汇总和易读单位选项见 Apple 发布的 du 手册。
du -sh "$HOME/Library/Logs" /Library/Logs /private/var/log
du -sh "$HOME/Library/Logs/DiagnosticReports" /Library/Logs/DiagnosticReports
第二行的子目录已经算进第一行,不要把五个数字加在一起,测到的是占用,不是保证可以清理出的空间。
路径不存在不用修,遇到访问被拒绝,表示这次统计不完整,不是大小为零,不要为了得到更大的清理数字去改权限或加管理员权限,能在控制台查看的报告先看,访问不了的位置先留下。
如果日志只占了所需空间的一小部分,就没必要继续删,没有一个经过核实、适用于所有 Mac 的典型清理量。可重新生成的数据是另一个问题,可以看哪些 Mac 缓存可以删除和怎么清理 Mac 缓存,别把日志当成缓存。
先移除一份旧报告,留出恢复时间
从问题已经解决的旧报告开始,Apple 的控制台指南写了怎么查看报告、把选中的报告移到废纸篓,不需要清空目录。还在排查的问题,先把相关报告分享给协助排查的人,或者另存一份,再考虑删除。
- 记下报告对应的应用、日期、位置和大小,读一下内容,确认是哪次故障。
- 如果属于可以正常退出的应用,改文件前先退出应用。
- 只把不要的报告移到废纸篓,保留 Logs 文件夹和旁边的文件。
- 重新打开应用,重复原来关心的操作,检查同一个错误和新报告。
检查期间先把文件留在废纸篓,只有文件还在时才能从那里恢复,移进去本身也没有清理出磁盘空间,Apple 的废纸篓说明写了永久删除和放回项目的方法,需要恢复时先退出相关应用,放回以后再继续。
有些缓存可以从仍然可用的来源重新建立,新的日志却不能还原旧故障,删掉的诊断历史不会随着后续记录回来,也不要因为锁文件、数据库或设置放在日志旁边,就把它们一起删掉。
日志一直变大时,先找写入原因
把持续增长当成排查线索,记录同一个文件的大小和修改时间,正常退出应用,对比退出期间和重新打开后的变化,这是一次对照,不代表文件夹名字就能证明所有写入都来自同一个应用。
如果某个操作一做就增长,留下相关片段,记下应用版本和触发操作,交给开发者排查,改日志设置前先看厂商说明,不要停掉系统服务,也不要反复删除输出掩盖现象。
删除大日志能去掉积累的记录,但解释不了为什么会写出这些记录,同一个错误不断回来时,接下来要处理的是错误本身。
Mole 会列出什么
Mole Mac 的清理在运行日志中列出 ~/Library/Logs 下符合条件的单个文件,不把应用日志文件夹整个选中,旧日志以 7 天为界,满足条件且可以立即处理时默认勾选。近期修改、至少 50 MiB 的日志另列为默认不勾选的待确认项,选中后原地清空文件,没有废纸篓恢复。
系统数据中的系统日志和崩溃报告分别对应 /private/var/log 和 /Library/Logs/DiagnosticReports 的合格项,有辅助程序访问权限时沿用正常的默认勾选,没有它时显示的行默认不勾选,留给确认。统一日志也默认不勾选,选中会永久删除持久化诊断历史,不会移到废纸篓。
PathGuard 会保留受保护的应用状态,也保留 Mole 自己的日志,但并不保护所有日志,/private/var/log 是明确允许的目录,统一日志操作则通过专用系统辅助程序执行,默认不勾选表示要先确认,不代表选中以后不能移除。
常见问题
能把 Library/Logs 全删了吗?
两个上级目录都别清空,先认出一份旧报告或应用日志,没解决的问题保留证据,只移除已经选定的那个文件。
删日志能清理出很多空间吗?
先量大小,单个大日志可能值得处理,但很小的日志总量解释不了更大的空间缺口,也没有通用的清理量可以保证。
删掉的日志会回来吗?
后续活动可能产生新记录,但不会重现删掉的历史,同一个文件重新变大时,查写入程序和重复报错,不要靠定期再删来应付。