欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

统一日志系统 是什么 意思 通义千问 chatgpt 有大用 有大大用

“统一日志系统”(Unified Logging System)是 Apple 从 macOS 10.12(Sierra)和 iOS 10 开始引入的一套全新的系统级日志架构,用来替代传统的文本日志文件(如 /var/log/system.log)。


📌 为什么叫“统一”?

因为它:

  • 集中管理 所有系统组件、内核、守护进程、第三方应用的日志;

  • 使用结构化格式(而非纯文本),便于过滤、搜索和分析;

  • 日志存储在二进制数据库中(位于 /var/db/diagnostics/),不是普通文本文件;

  • 提供了统一的命令行工具 log 来查询,而不是用 tailgrep 看 .log 文件。


🔧 如何使用统一日志系统?

✅ 查看日志的主要工具:log 命令

bash
编辑
# 查看最近1小时的所有日志
log show --last 1h

# 查看某个进程的日志(例如 Self Service)
log show --predicate 'process == "Self Service"' --last 24h

# 查看包含关键词“error”的日志
log show --predicate 'eventMessage contains "error"' --last 1h

# 实时流式查看日志(类似 tail -f)
log stream --predicate 'process == "Self Service"'

✅ 在图形界面中查看:Console.app(控制台)

  • 打开 应用程序 > 实用工具 > 控制台(Console)

  • 左侧选择你的 Mac(或设备)

  • 可以实时看到统一日志系统的输出,并支持搜索、过滤


❌ 旧日志方式(已弃用或受限)

  • 传统路径如 /var/log/system.log 在较新 macOS 中不再更新(或内容极少)

  • syslog() 函数仍可用,但 Apple 推荐改用 os_log() API(属于统一日志系统)


🛠 对 Jamf / MDM 管理员的意义

  • Jamf Pro 从较新版本开始,将日志输出集成到统一日志系统中

  • 你无法再简单地 cat /var/log/jamf.log(该文件可能不存在或为空)

  • 必须使用 log show 或 Console.app 来排查 Self Service、策略执行、MDM 命令等问题

例如:

bash
编辑
# 查看 Jamf 相关的所有日志
log show --predicate 'subsystem contains "com.jamf"' --last 6h

# 查看配置描述文件安装失败的线索
log show --predicate 'eventMessage contains "Profile" && eventMessage contains "fail"' --last 1d

💡 小贴士

  • 统一日志默认循环覆盖,不会无限增长(节省磁盘空间)

  • 普通用户只能看到自己进程的日志;要查看系统级日志需管理员权限(sudo

  • 第三方 App 如果使用 os_log,也会自动进入这个系统


如果你是在排查 Jamf、Self Service 或配置描述文件问题,必须学会使用 log 命令或 Console.app,因为这是 Apple 官方推荐且唯一完整的日志来源。

需要我帮你写一个具体的日志查询命令来定位某类错误吗?


普通分类: