应聚焦 error/fault/panic 三类结构化系统级错误,使用 log show 限定 kernel/xpc/launchd 等核心模块,配合 --predicate 精准筛选,并支持 json 导出与实时流监控。
直接用 log show 提取 macos 系统级错误信息,关键不是“找所有错误”,而是聚焦 error / fault / panic 这三类真正影响系统稳定性的结构化记录——它们被统一日志系统明确标记,且多数来自内核、launchd、驱动或核心服务。
只查系统核心模块的 error 和 fault
第三方应用日志会干扰判断,应排除。以下命令限定在内核、XPC 服务和 launchd 等底层进程范围:
log show --predicate '(process == "kernel" OR subsystem contains "com.apple.kernel" OR subsystem contains "com.apple.xpc.launchd") AND (level >= error)' --last boot- 加
--info可同时包含 info 级别中带关键上下文的条目(如服务启动失败前的准备日志) - 若想进一步缩小到硬件相关错误,可追加
AND eventMessage contains "IOKit"
精准匹配 panic 和 shutdown cause 字段
Kernel Panic 和异常关机不会只写 “error”,而是留下特定线索。直接抓这些关键词更可靠:
利用 macOS 原生能力实现本地语音识别与合成。通过 yap (Apple Speech.framework) 进行语音转文字,通过 say + ffmpeg 进行文字转语音。完全离线,无需 API 密钥。具备音质检测与智能选声功能。
log show --predicate 'eventMessage contains "panic" OR eventMessage contains "Previous shutdown cause"' --last 7d- 加上
--style json方便后续用jq提取字段:log show ... --style json | jq -r '.eventMessage' - 若只想看 shutdown cause 的数值(如 3、5、128),用:
log show --predicate 'eventMessage contains "Previous shutdown cause"' --last 7d | grep -o "cause: [0-9-]*"
导出完整错误流供离线分析
图形界面加载慢、易漏数据,终端导出是排查偶发问题的标配操作:
log show --predicate 'level >= error' --last 7d > ~/Desktop/errors_7d.txt- 导出 JSON 格式保留结构(适合脚本解析):
log show --predicate 'level >= error' --last 24h --style json > ~/Desktop/errors.json - 避免中文路径或空格导致失败:确保桌面路径不含特殊字符,或改用
~/Documents/
配合实时流确认当前错误源头
如果问题正在发生(比如卡顿、风扇狂转),log stream 比 log show 更及时:
-
log stream --predicate 'level >= error' --info实时滚动显示新错误 - 加
--signpost可看到系统关键事件标记(如 app launch、sleep/wake) - 按
Ctrl + C停止后,最后一屏往往就是触发点附近的关键报错










