在详细模式(启动时按 cmd + v)启动我的机器后,我想查看生成的日志消息,以调试我收到的错误(错误)。错误信息仅在启动过程中短暂显示在屏幕上,然后机器将重新启动。因此,没有时间正确读取它。
OS X 是否为启动消息提供了单独的日志文件,还是这些消息隐藏在 kernel.log 和 system.log 文件中?如果它们隐藏在这些文件中,是否有一种快速方法可以在控制台查看器中跳转到系统启动的位置?
答案1
从 Snow Leopard 开始,甚至从 Leopard 开始,系统上的所有日志记录都会经过 Apple 系统日志 (ASL) 机制,该机制就像是所有日志消息的中央守护进程和数据库。ASL 守护进程还确保符合某些传统标准的适当日志消息被写入传统的纯文本日志文件(如system.log
和 )kernel.log
,但所有内容也会进入 ASL 数据库。
有关详细信息,请参阅syslog(1)
、、、、、、、等logger(1)
的手册页syslog(3)
。asl(3)
syslog.conf(5)
asl.conf(5)
syslogd(8)
您可以使用syslog(1)
它来针对 ASL 数据库发出查询。此外,/Utilities/Console.app
它还提供了一个 GUI,用于生成和保存 ASL 数据库的自定义查询。
dmesg(8)
我非常确定,一旦启动进行到足以运行的程度,内核的消息缓冲区(传统上用 查看)就会被转储到 ASL 数据库中syslogd
,因此您不需要dmesg
直接调用,除非出于习惯。或者如果您的系统启动还不足以syslogd
运行。
答案2
接受的答案(由 Spiff 提供)对我没有帮助,而且也不再有 kernel.log。
对我有用的(在 macOS 10.12.6 上)是这个命令:
log show --predicate "processID == 0" --start $(date "+%Y-%m-%d") --debug
它显示了今天的所有内核信息,包括启动过程。它需要一些清理,但至少它包含了我需要找到的所有内容。
答案3
打开 Terminal.app 并运行
命令dmesg
(系统会要求您输入密码)
这将显示从上次启动到现在的系统消息(您会在输出的顶部找到启动消息)。您可以尝试
sudo dmesg | 更多
这将逐页输出这些消息。
答案4
我知道这很愚蠢,但有时这对我来说是最快的,甚至是唯一的选择:
使用智能手机或其他相机拍摄屏幕,稍后观看视频。如果拍摄速度非常快,您甚至可以使用慢动作模式(如果您的相机有此选项)。
再说一次,我知道这是最荒谬的方法,但也许有人和我一样无助:D