最准确、最常用的方法是用 log show 加 --predicate 限定进程名,通过 process == "XXX" 精准筛选单个进程,支持 OR 多进程联合查询、NOT 排除干扰进程,并可叠加时间范围与日志级别进一步过滤。
直接用 log show 加 --predicate 限定进程名,是最准确、最常用的方法。macos 统一日志为每个条目打上 process 字段,只要知道进程名(比如 safari、networkd 或 kernel),就能精准抓取它产生的全部日志。
用 process == "XXX" 精准筛选单个进程
这是最基础也最可靠的写法,大小写敏感,必须完全匹配进程名:
-
log show --predicate 'process == "Safari"'—— 查 Safari 所有日志 -
log show --predicate 'process == "networkd"' --last 30m—— 查 networkd 近半小时日志 -
log show --predicate 'process == "kernel"' --level error—— 只看内核的 error 级别日志
同时查看多个进程的日志
用 OR 连接多个条件,适合对比关联服务行为:
log show --predicate 'process == "configd" OR process == "networkd"'log show --predicate '(process == "nehelper" OR process == "mDNSResponder") AND eventMessage contains "disconnect"'
排除某个高频干扰进程
有些进程(如 nehelper)会大量输出周期性状态,可用 NOT 排除:
部署和使用军舰的 macOS Automator 自动化服务集合。包含 5 个实用工作流:PDF转JPG、PNG重命名并转JPG、图像拼接、解压RAR、顺序命名图像文件。一键安装所有服务到 ~/Library/Services/ 目录。使用场景:(1) "安装我的自动化服务",(2) "部署所有 Automato...
log show --predicate 'subsystem == "com.apple.networking" AND NOT (process == "nehelper")'-
log show --predicate 'NOT process == "mds_stores"'—— 跳过 Spotlight 索引日志
配合时间与级别进一步收窄结果
单独查进程容易信息量过大,建议叠加时间窗口和日志等级:
log show --predicate 'process == "opendirectoryd"' --last 1h --level infolog show --predicate 'process == "syspolicyd"' --start "2026-07-07 20:00:00" --end "2026-07-07 20:15:00"- 导出到文件便于分析:
log show --predicate 'process == "bluetoothd"' --last 2h > ~/Desktop/bluetooth.log
注意:进程名不带路径,只写二进制名(如 bluetoothd,不是 /usr/libexec/bluetoothd);若不确定名字,可先运行 log show --last 1m | head -20 看几条典型日志的 process 字段。

















