在Mac上读取syslog输出

时间:2008-12-19 05:34:08

标签: macos syslog

我有一个为linux编写的程序,我正在尝试在我的MacOS 10.5机器上构建和运行它。该程序构建和运行没有问题,但它会对syslog进行多次调用。我知道syslogd正在我的mac上运行,但我似乎无法找到我的syslog调用输出到的位置。

syslog调用的格式为

syslog (LOG_WARNING, "Log message");

知道我可以在哪里找到我的日志输出吗?

7 个答案:

答案 0 :(得分:58)

/var/log/system.log

您可以使用tail -f /var/log/system.log

轻松监控它

另请参阅“logger”(man logger)和“syslog”(man syslog)。

答案 1 :(得分:47)

您应该使用Console.app来查看日志文件。这是真的。

选择左侧的设备并过滤右侧的消息:

enter image description here

答案 2 :(得分:12)

如果有疑问,总会有man syslog

您可以在/var/log/syslog中找到您的邮件;我的机器设置为开箱即用,仅包含高级消息,因此您可能需要进行设置。

您还可以通过 syslog(1)阅读消息,或使用类似

的命令创建测试消息
$ syslog -s -l INFO "Hello, world."

使用严重性为P(“恐慌”),您将立即在控制台上收到令人兴奋的消息。

答案 3 :(得分:7)

也许有趣的是:Apple过去使用的是真正的syslogd,但同时所有这些都已转换为ASL(Apple System Log)。 syslog命令仍然可用,但它只能访问这一个日志。如果要在配置的所有日志文件中访问ASL的所有日志消息,请使用log命令。

E.g。以下显示Safari在过去两天内生成的所有日志消息(耐心等待,可能需要一段时间):

log show --predicate 'process == "Safari"' --last 2d

有关您可以执行的所有操作,它知道的所有参数以及可以过滤的属性,请参阅man log

答案 4 :(得分:6)

Mac OS X实现a superset of syslog's functionality。所有的syslog都在那里,但作为ASL的一部分。

Matthew Schinckel在他的回答中提到的控制台是ASL上的GUI。它将向您显示数据库中存在的任何消息,这些消息由侧栏中列出的查询提取。默认情况下有两个查询;一个只显示使用Console工具发送的消息(由NSLog使用,除其他外),而另一个显示所有日志消息。检查所有消息查询;你可能会在那里找到你的信息。

“全部”确实带有星号。如果你查看/etc/asl.conf,你会看到这一行:

# save everything from emergency to notice
? [<= Level notice] store

幸运的是,在您的情况下,邮件将通过此检查,因为警告超过(通知次数较少)通知。

答案 5 :(得分:1)

根据Charlie的回答,我想补充一点,你应该看一下syslog.conf(5)的联机帮助页,并查看文件/etc/syslog.conf(这是定义syslog配置的地方)默认情况下,正如我所看到的,在OS X 10.5.x上。

答案 6 :(得分:0)

检查程序中某处openlog的呼叫。致电openlog后,syslog会将其输出保存到该日志文件而不是默认位置。