在MAC OSX上使用Python的SyslogHandler时,DEBUG和INFO消息会去哪里?



我配置了一个带有SysLogHandler的Python记录器,并作为测试使用所有级别记录了一些消息:调试,信息,警告,错误,严重。如果我运行"syslog"或查看 Console.app 显示,我会看到所有消息。因此,所有消息都已正确记录。但是,当我tail /var/log/messages.log时,我没有看到调试和信息消息。我读了有关 ASL 的信息,我看到一个名为 /var/log/asl 的目录,里面装满了二进制文件,但我根本不明白它是如何与 syslog 交互的。

使用 man syslogman asl (ASL = Apple System Log) 和 man aslmanager ,您会发现有一个配置文件/etc/asl.conf,默认版本包含以下行:

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

因此,ASL不会存储DEBUG和INFO上的这些消息,这反过来意味着它们不能在事后由syslog打印。 syslog程序似乎从二进制ASL文件中读取存储的数据,而不是从文本/var/log/messages.log文件中读取。

如果编辑/etc/asl.conf文件,则可以更改"级别"以记录 INFO 和 DEBUG 消息。您需要重新启动 ASL 守护程序(syslogdaslmanager )或重新启动计算机,并且您可能需要注意使用的空间(因为不存储 DEBUG 和 INFO 消息的原因是它们很容易非常庞大)。

最新更新