macOS 中如何查看系统日志(syslog)?
macOS 系统日志位于 /var/log/system.log(新版在 /private/var/log/),可用 tail -f 跟踪;现代 macOS 推荐用 log show/log stream 命令查看统一日志。本文介绍各种查看方式。
传统 syslog 文件:/var/log/system.log(即 /private/var/log/system.log)。现代 macOS(10.12+)主推统一日志系统,用 log show(查历史)和 log stream(实时)命令更完整。
查看 syslog 文件
# 实时跟踪
tail -f /var/log/system.log
# 查看全部
cat /var/log/system.log
# 搜索关键词
grep "error" /var/log/system.log
现代方式:log 命令
macOS Sierra(10.12)起系统日志主要进入 Unified Logging,很多消息不再写入 system.log:
# 查看最近 1 小时的日志
log show --last 1h
# 实时跟踪
log stream
# 按进程过滤
log show --process "kernel" --last 30m
# 只看错误级别
log show --predicate 'messageType == error' --last 1h
图形界面:控制台.app
打开"控制台"(Console.app,在 应用程序 → 实用工具 中),左侧选择设备即可浏览所有系统日志,支持搜索和过滤。
观测云对照
需要在多台 Mac 或混合平台(Mac+Linux+Windows)上统一收集系统日志时,观测云 DataKit 支持 macOS 部署,把系统日志采集到观测云平台统一检索和告警。
常见问题(FAQ)
Q:/var/log/system.log 里没有想找的记录?
A:该消息可能只进了 Unified Logging 而不写文件,用 log show 查找。
Q:log show 输出太多怎么办?
A:加 --last 10m 限定时间窗口,--predicate 精确过滤进程/级别/关键词。
Q:应用崩溃日志在哪?
A:~/Library/Logs/DiagnosticReports/(用户级)和 /Library/Logs/DiagnosticReports/(系统级)。