在 Mac OS X 中从命令行跟踪系统和内核日志

来自命令行的 Mac OS X 控制台日志

如果您要故障排除一些在 Mac 上可能遇到的更棘手的问题,一个不错的地方是控制台应用程序中包含的系统和内核日志。但是您也可以从终端访问相同的 OS X 日志。

既然有一个 OS X 应用程序可以在 GUI 中本地执行,为什么还要从终端读取系统日志呢?好吧,原因有很多,也许是因为您正在使用 ssh 远程查看日志,也许您只是更喜欢终端,或者,也许事情真的很糟糕。在后一种情况下,不幸的是有时您无法访问控制台,因为您在单用户模式下进行远程故障排除,或者甚至因为日志文件变得如此之大以至于它实际上开始崩溃 Console.app 当它试图加载(这发生在我身上不止一次)。是的,有时候,问题会严重到连 OS X 控制台日志都无法直接打开!但是,如果您遇到这种情况,请不要担心,您仍然可以通过转到 Mac 的命令行来跟踪和监控 Mac OS X 的系统日志。

如果您处于这种情况,或出于任何其他原因想要从 命令行,这里是您需要输入的所有内容:

tail -f /var/log/system.log

您可以对内核日志执行相同的操作,如果您要排除硬件和连接问题,这非常有用:

tail -f /var/log/kernel.log

tail -f 命令允许在实时流中读取指定文件并将其打印到屏幕上。 /var/log 中包含许多您可以关注的其他日志文件,但以上两个通常对故障排除最有用。

您还可以对日志文件使用 less 命令,如下所示:

less /var/log/kernel.log

用 less 打开日志文件后,按“F”键在实时更新时不断更新日志文件,这有点像 tail -f,因为它提供了一个不断更新的日志文件以便于查看.

syslog 命令是另一种选择,但如果您运行的 syslog 不受 grep、awk 或更多或更少的控制,则相当麻烦。亲自看看:

系统日志

你会发现它有点让人不知所措,而且通过更多管道更易于管理:

系统日志 |更多

syslog 命令的功能很好,但有一些好处,使用 –help 标志发现更多,它将向您展示如何导出日志文件的内容、读取特定日志、将日志与进程匹配等等。

如果您想直接在 Mac OS X 桌面上查看系统日志活动,您还可以将这些命令与 GeekTool 结合使用。或者只是将一个终端窗口放到 Mac 上,也许让它变得透明,以便更轻松地处理多任务视图,并让您愉快地进行故障排除、管理或开发。