macos系统日志由unified logging统一管理,查看方式包括图形界面的“控制台”app和命令行的log命令:前者适合快速浏览与筛选,后者支持精准过滤、时间范围查询及导出;/var/log下保留部分传统syslog文件供辅助验证;log stream用于实时监控。

macOS 系统日志不存于单一文件,而是由 Unified Logging 系统统一管理,终端输出和系统事件都实时写入结构化数据库。查看方式分图形界面与命令行两类,核心是控制台 App 和 log 命令,两者互补,覆盖实时监控、历史回溯、精准筛选与导出分析。
用“控制台”App 快速浏览与筛选
这是最直观的入口,适合日常排查和快速定位异常:
- 打开“访达” → “应用程序” → “实用工具” → 双击“控制台”
- 左侧选中你的 Mac 设备名,右侧自动加载实时日志流;点顶部“开始”可加载缓存的历史记录(通常数小时至数天)
- 在右上角搜索框输入关键词,如
crash、panic、WiFi或应用名(如Chrome),回车即高亮匹配项 - 支持高级语法:输入
s:com.apple.WebKit查 WebKit 子系统,或p:kernel查 kernel 进程;按住 Control 键点击某条日志,可“仅显示此进程”或“隐藏调试信息” - 双击日志条目,底部展开完整详情,含时间戳、子系统、进程 ID 和原始消息;右键可“在访达中显示”定位对应日志文件路径
用终端 log 命令精准提取与过滤
当需要按时间、来源或内容做结构化检索时,log show 是不可替代的工具:
- 查最近 2 小时日志:
log show --last 2h;加| less可分页浏览 - 按关键词过滤:
log show --predicate 'eventMessage contains[c] "error"'([c] 表示忽略大小写) - 限定进程或服务:
log show --predicate 'process == "mds_stores"'查 Spotlight 索引进程,或log show --predicate 'subsystem == "com.apple.AssetCache"'查内容缓存日志 - 聚焦启动过程:
log show --last boot --predicate 'subsystem == "com.apple.xpc.launchd" OR process == "kernel"' - 导出为文本便于分享或离线分析:
log show --predicate 'eventMessage contains "fail"' --last 1d > ~/Desktop/fail_log.txt
访问传统日志文件辅助验证
部分底层服务仍保留原始 syslog 格式文件,位于 /var/log,需管理员权限读取:
- 在访达中按
Cmd + Shift + G,输入/var/log跳转 - 常见文件包括:
system.log(通用系统事件)、kernel.log(内核消息)、secure.log(登录与权限操作) - 终端中用
sudo cat /var/log/system.log查看;若提示权限拒绝,需输入当前管理员密码 - 这些文件不实时更新,主要用于验证 Unified Logging 是否正常工作,或对比恢复模式下的行为
实时监控终端输出与调试流
对正在发生的事件做即时响应,用 log stream 替代轮询式查询:
- 运行
log stream即开始滚动输出所有新日志;加--predicate实时过滤,例如:log stream --predicate 'eventMessage contains "Bluetooth"' - 只看错误及以上级别:
log stream --level error - 指定进程实时跟踪:
log stream --predicate 'process == "Safari"' - 按
Ctrl + C中断;结果可重定向保存:log stream --predicate 'subsystem == "com.apple.securityd"' > security_live.log











