macOS统一日志严重性为0–7级数字体系,数值越小越严重:Level 0(Emergency)触发panic报告,Level 1–3对应红色/黄色高亮的Alert/Critical/Error,Level 4(Warning)起为浅灰/深灰提示;level: error实际匹配Level 0–3,故可捕获panic/fault。
macos 控制台中的日志严重性(severity)不是简单按“错误/警告/提示”分类,而是由统一日志系统(unified logging)定义的一套 0–7 级数字体系,数值越小越严重。它直接影响日志是否写入磁盘、能否被终端命令捕获,以及在控制台中如何着色显示。
日志严重性等级(0–7)及实际表现
系统内部用整数表示严重性,控制台界面将其映射为颜色和语义标签:
- Level 0(Emergency):系统级致命异常,如内核崩溃前的最后信号;通常触发 panic 或立即重启;控制台中极少直接显示,但会生成 .panic 报告
- Level 1(Alert):需立即人工干预的严重问题,例如关键守护进程退出、电源管理失效;常伴随红色高亮条目
- Level 2(Critical):硬件或驱动层面严重故障,如磁盘 I/O 超时、GPU reset、Thunderbolt 设备通信失败;多见于 kernel 或 iokit 子系统日志
- Level 3(Error):功能不可用类错误,如服务启动失败、配置加载异常、权限拒绝;控制台搜索 level: error 即匹配此级及更严重项
- Level 4(Warning):潜在风险提示,如证书即将过期、内存压力预警、第三方驱动兼容性提示;显示为黄色圆点,不归入 error 筛选范围
- Level 5(Notice):常规状态通知,如网络接口启停、蓝牙配对完成;浅灰色,一般无需关注
- Level 6(Info) 和 Level 7(Debug):调试与追踪信息;深灰色;默认不写入持久存储,需显式启用调试日志才能捕获
为什么 level: error 能抓到 panic 和 fault?
因为 macOS 统一日志的 level 字段是分级包含的——level: error 实际等价于 level 。也就是说,它自动涵盖 Level 0–3 的所有条目。Kernel panic 日志虽未明写 “error”,但其 severity 值为 0 或 1;fault 类消息(如 EXC_BAD_ACCESS)通常记为 Level 2 或 3。所以用 level: error 过滤,本质是“取所有 ≥ 错误严重度”的记录,而非仅匹配字符串 “error”。
终端命令中如何正确利用 severity
log show 命令支持直接按数值筛选,比文本匹配更精准:
- 只看真正严重的系统事件:
log show --predicate 'level - 排除 debug/info 噪音,聚焦可操作线索:
log show --predicate 'level - 导出含 severity 标签的完整结构化日志:
log show --style json --predicate 'level ~/Desktop/severe_logs.json
注意:图形界面的“红色=故障”“黄色=错误”是 Apple 对 Level 0–4 的简化视觉映射,并非严格一一对应;终端命令则直接读取原始 severity 数值,更可靠。


















