在 Mac OS X 中从命令行跟踪系统 & 内核日志
如果您正在解决 Mac 上可能遇到的一些更棘手的问题,控制台应用程序中包含的系统和内核日志是一个不错的查看位置。但是您也可以从终端访问相同的 OS X 日志。
当有 OS X 应用程序在 GUI 中本地执行时,为什么还要从终端读取系统日志?好吧,原因有很多,也许是因为您正在使用 ssh 远程查看日志,也许您只是更喜欢终端,或者,也许事情真的很糟糕。在后一种情况下,不幸的是有时您无法访问控制台,因为您在单用户模式下进行远程故障排除,或者甚至因为日志文件变得如此之大以至于它实际上开始崩溃 Console.app 当它试图加载(这发生在我身上不止一次)。是的,有时候,问题会严重到连 OS X 控制台日志都无法直接打开!但是如果你遇到这种情况不要害怕,你仍然可以通过Mac的命令行来跟踪和监控Mac OS X的系统日志。
如果您处于这种情况,或出于任何其他原因,您希望按照命令执行控制台system log行,这里是您需要输入的所有内容:
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
你会发现它有点让人不知所措,并且通过更多管道更易于管理:
syslog |更多
syslog 命令的功能很好,但有一些好处,使用 –help 标志发现更多,它将向您展示如何导出日志文件的内容、读取特定日志、将日志与进程匹配,以及更多。
如果您想直接在Mac OS X 桌面上查看系统日志活动,您还可以将这些命令与GeekTool 结合使用。或者只是将一个终端窗口扔到 Mac 上,也许让它变得透明,以便更轻松地处理多任务视图,并为您带来愉快的故障排除、管理或开发。