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

Posted

技术标签:

【中文标题】在 MAC OSX 上使用 Python 的 SyslogHandler 时,DEBUG 和 INFO 消息去哪里了?【英文标题】:Where do DEBUG and INFO messages go when using Python's SyslogHandler on MAC OSX? 【发布时间】:2014-02-25 04:21:22 【问题描述】:

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

【问题讨论】:

【参考方案1】:

使用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 消息未存储的原因是它们往往体积很大)。

【讨论】:

以上是关于在 MAC OSX 上使用 Python 的 SyslogHandler 时,DEBUG 和 INFO 消息去哪里了?的主要内容,如果未能解决你的问题,请参考以下文章

Mac OSX上卸载Anaconda

如何在 Mac OSX 10.6 上卸载 wxpython 2.8

如何在 Mac OSX 终端中更改主要 python 版本

python tab 补全 Mac OSX 10.7 (Lion)

在 Mac OSX Snow Leopard 上托管 Web 服务

在mac osX下安装openCV,used for python