在Mac上读取系统日志输出
我有一个为Linux编写的程序,我正在试图在MacOS 10.5机器上构build和运行它。 该程序构build和运行没有问题,但是它使许多调用syslog。 我知道syslogd正在我的mac上运行,但我似乎无法find我的系统日志调用输出到。
系统日志调用的forms
syslog (LOG_WARNING, "Log message");
任何想法,我可能会发现我的日志输出?
/var/log/system.log
您可以使用tail -f /var/log/system.log
轻松监视它
另请参阅“logging器”( man logger
)和“syslog”( man syslog
)。
您也可以使用Console.app程序查看日志文件。 这是呃。
如果有疑问,总是有人man syslog
。
你可以在/var/log/syslog
find你的消息; 我的机器开箱即用,只包含高级信息,因此您可能需要进行设置。
您也可以通过syslog(1)读取消息,或使用类似命令创buildtesting消息
$ syslog -s -l INFO "Hello, world."
使用P(“恐慌”)的严重性,你会立即在你的控制台上得到一个令人兴奋的消息。
Mac OS X实现了syslogfunction的超集 。 所有的系统日志都在那里,但作为ASL的一部分。
由Matthew Schinckel在他的回答中提到的控制台是ASL上的GUI。 它将向您显示数据库中存在的任何消息,如边栏中列出的查询所获取的消息。 有两个查询默认情况下, 一个只显示与控制台设施( NSLog
,等等)发送的消息,而另一个显示所有日志消息。 检查全部消息查询; 你可能会在那里find你的信息。
这个“全部”确实带有星号。 如果你看看/etc/asl.conf,你会看到这一行:
# save everything from emergency to notice ? [<= Level notice] store
幸运的是,在你的情况下,这个消息将通过这个检查,因为警告超出(比数量less)的通知。
在查理的回答的基础上,我想补充一点,你应该看看syslog.conf(5)
的联机帮助文档,还可以查看文件/etc/syslog.conf
(这是syslogconfiguration由默认情况下也是如我所见,在OS X 10.5.x上)。
也许有趣的是,苹果在过去使用了一个真正的syslogd
,但同时这一切都转换为ASL(苹果系统日志)。 syslog
命令仍然可用,但只能访问这一个日志。 如果要在所有configuration的日志文件中访问ASL的所有日志消息,请使用log
命令。
例如,以下显示了Safari在过去两天内生成的所有日志消息(耐心等待,可能需要一段时间):
log show --predicate 'process == "Safari"' --last 2d
查看man log
了解您可以执行的所有操作,知道的所有参数以及可以过滤的属性。
检查程序中某个地方的openlog
调用。 在打开syslog
的调用之后, syslog
会将其输出保存到该日志文件而不是默认位置。