我使用SysLogHandler配置了一个Python记录器,并且作为测试使用所有级别记录了一些消息:debug,info,warning,error,critical。如果我运行'syslog'或者我查看Console.app显示,我会看到所有消息。因此,所有消息都被正确记录。但是,当我tail /var/log/messages.log
时,我没有看到DEBUG和INFO消息。我读到了ASL,我看到一个名为/var/log/asl
的目录,里面装满了二进制文件,但我根本不明白它是如何与syslog交互的。
答案 0 :(得分:7)
使用man syslog
,man asl
(ASL = Apple系统日志)和man aslmanager
,您会发现有一个配置文件/etc/asl.conf
,默认版本包含这些行:
# save everything from emergency to notice
? [<= Level notice] store
因此,ASB不会存储DEBUG和INFO中的此消息,这反过来意味着事后不能由syslog
打印。 syslog
程序似乎从二进制ASL文件而不是文本/var/log/messages.log
文件中读取存储的数据。
如果您编辑/etc/asl.conf
文件,则可以更改级别以记录INFO和DEBUG消息。您需要重新启动ASL守护程序(syslogd
,aslmanager
),或重新启动计算机,您可能需要密切关注所使用的空间(因为DEBUG和INFO的原因)没有存储的信息是它们很容易变得非常庞大。)