这些syslog调用的形式为:
syslog (LOG_WARNING, "Log message");
有什么想法可以告诉我在哪里找到我的日志输出吗?
/var/log/system.log
您可以使用tail -f /var/log/system.log
轻松监控它。
另请参阅“logger”(man logger
)和“syslog”(man syslog
)。
值得注意的是:Apple 曾经使用真正的 syslogd
,但是现在已经全部切换到 ASL(苹果系统日志)。syslog
命令仍然可用,但它只会访问此日志。如果您想要访问所有已配置日志文件中 ASL 的所有日志消息,请使用 log
命令。
例如,以下内容显示了最近两天 Safari 生成的所有日志消息(请耐心等待,可能需要一段时间):
log show --predicate 'process == "Safari"' --last 2d
查看 man log
以获取您可以执行的所有操作、它所知道的所有参数和您可以过滤的属性。
$ syslog -s -l INFO "Hello, world."
使用严重程度为 P(“panic”)将立即在控制台上获得令人兴奋的消息。
Mac OS X实现了syslog功能的超集。所有syslog都在那里,但作为ASL的一部分。
控制台是由Matthew Schinckel在他的回答中提到的ASL上的GUI。它会显示数据库中存在的任何消息,如侧边栏中列出的查询所检索的那样。默认情况下有两个查询;一个仅显示使用Console设施发送的消息(由NSLog等工具使用),而另一个则显示所有日志消息。查看所有消息查询;您可能会在那里找到您的消息。
这个“全部”带有星号。如果您查看/etc/asl.conf,您将看到这行:
# save everything from emergency to notice
? [<= Level notice] store
幸运的是,在您的情况下,该消息将通过此检查,因为警告优先级低于(数字较小)通知。
brew install lnav
使用方法:
lnav /var/log/system.log
用户界面本身:
在Charlie的回答基础上,我想补充一点,你应该查看syslog.conf(5)
的man页,并且也要看一下文件/etc/syslog.conf
(这是syslog配置默认定义的地方,同时,在OS X 10.5.x上也是如此)。
查找程序中是否有调用openlog
的语句。在调用openlog
之后,syslog
将把其输出保存到该日志文件而不是默认位置。
很遗憾,以上提到的答案都不能解决我的问题。
通过终端使用mail
程序访问系统邮件,可以在邮件中找到所有/usr/sbin/cron
的日志记录。
/var/log/system.log
文件中了。我只能通过 Console.app 来查看它们。 - Jorge Orpinel Pérez/private/var/log/system.log
找到系统日志。 - neilco