OS X Lion中的详细启动会在哪里生成日志文件?


19

在以详细模式启动计算机(启动时为cmd + v)后,我想查看生成的日志消息,以调试我收到的错误error)。该错误仅在启动过程中在机器重启之前短暂地显示在屏幕上。结果,没有时间正确阅读它。

OS X是否为启动消息提供了单独的日志文件,还是将它们埋在kernel.log和system.log文件中?如果它们埋在这些文件中,是否有一种快速的方法可以跳到控制台查看器中的系统引导位置?

Answers:


3

至少从Snow Leopard(可能还有Leopard)开始,系统上的所有日志记录都通过Apple System Log(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)一旦启动过程进行到足以syslogd运行的程度,内核的消息缓冲区(通常用来查看)就被转储到ASL数据库中,因此dmesg,除了通过习惯来使用外,您无需直接调用。或者,如果您的系统启动不足,syslogd无法运行。


这对以前的靴子有用吗?我写这个问题时遇到的问题(现在已解决,谢天谢地)只是间歇性地发生。可以这么说,每隔一次启动,我就对内核感到恐慌,而我想做的就是在下一次成功启动时,查看日志文件,找到先前的启动,然后尝试调试。
Purpletonic 2012年

@purpletonic是的,所有发送到ASL的内容都会放入数据库中,该数据库默认保留7天(可以使用进行调整asl.conf(5))。因此,如果您要调试启动问题并在同一天重新启动几次,则默认情况下它们会存在。而且,如果这是一个长期问题,则可以调整ASL的保留期限,以使物料保留更长的时间。
Spiff 2012年

但是,该答案实际上并未说明我如何看到“详细”启动过程的输出。一旦启动,dmesg它只会显示一些最近的条目,而不会显示启动日志。在10.12.6上尝试-不再有“ kernel.log”文件。
SuperTempel

11

打开Terminal.app并运行

苏多·德梅格

(系统会要求您输入密码)

这将显示从上次启动到现在的系统消息(您将在输出顶部找到启动消息)。你可以试试

sudo dmesg | 更多

这将逐页输出这些消息。


真好!我会使用更少而不是更多,它要方便得多,并且不会使您的终端回滚变得混乱。
SilverWolf-恢复莫妮卡

4

Spiff接受的答案对我没有帮助,也没有kernel.log了。

此命令对我有用(在macOS 10.12.6上):

log show --predicate "processID == 0" --start $(date "+%Y-%m-%d") --debug

它显示了当今所有的内核消息,包括引导过程。它需要进行一些清理,但至少包含我需要查找的所有内容。


这也对我有用。谢谢。其他答案显示的东西不一定与启动有关,或者没有确切显示启动过程中正在打印的内容。您的答案为+1。而且它也是用颜色编码的!
Max Coplan

2

我本人想知道如何在不访问控制台/终端的情况下使日志最适合启动。它在启动时崩溃,但是您可以通过安装磁盘访问文件系统(我有双Linux引导可用)。该文件是:

/var/log/kernel.log

如果可以在操作系统中访问控制台,则最好遵循其他建议并使用适当的命令。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.