我使用SysLogHandler配置了Python记录器,并通过测试在所有级别上记录了一些消息:调试,信息,警告,错误,严重。如果我运行“syslog”或查看Console.app显示屏,我会看到所有消息。因此,所有消息均已正确记录。但是,当我tail /var/log/messages.log
时,我看不到DEBUG和INFO消息。我读到有关ASL的信息,我看到一个名为/var/log/asl
的目录,里面充满了二进制文件,但我完全不了解它与syslog的交互方式。
最佳答案
使用man syslog
,man 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守护程序(syslogd
,aslmanager
)或重新启动计算机,并且可能需要注意使用的空间(因为未存储DEBUG和INFO消息的原因是它们是往往非常庞大)。关于python - 在MAC OSX上使用Python的SyslogHandler时,DEBUG和INFO消息会发送到哪里?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22004505/