我使用SysLogHandler配置了Python记录器,并通过测试在所有级别上记录了一些消息:调试,信息,警告,错误,严重。如果我运行“syslog”或查看Console.app显示屏,我会看到所有消息。因此,所有消息均已正确记录。但是,当我tail /var/log/messages.log时,我看不到DEBUG和INFO消息。我读到有关ASL的信息,我看到一个名为/var/log/asl的目录,里面充满了二进制文件,但我完全不了解它与syslog的交互方式。

最佳答案

使用man syslogman asl(ASL = Apple系统日志)和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消息的原因是它们是往往非常庞大)。

关于python - 在MAC OSX上使用Python的SyslogHandler时,DEBUG和INFO消息会发送到哪里?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22004505/

10-13 08:12