【问题标题】:Unable to log debug messages to the system log in Python无法在 Python 中将调试消息记录到系统日志中
【发布时间】:2014-07-19 22:35:57
【问题描述】:

我在 Mac OSX 上使用 Python 3.4。我有以下代码来设置记录器:

LOGGER = logging.getLogger(PROGRAM_NAME)
LOGGER.setLevel(logging.DEBUG)
LOGGER.propagate = False

LOGGER_FH = logging.FileHandler(WORKING_DIR + "/syslog.log", 'a')
LOGGER_FH.setLevel(logging.DEBUG)
LOGGER_FH.setFormatter(logging.Formatter('%(name)s: [%(levelname)s] %(message)s'))
LOGGER.addHandler(LOGGER_FH)

LOGGER_SH = logging.handlers.SysLogHandler(address='/var/run/syslog',
                                       facility=logging.handlers.SysLogHandler.LOG_USER)
LOGGER_SH.setLevel(logging.DEBUG)
LOGGER_SH.setFormatter(logging.Formatter('%(name)s: [%(levelname)s] %(message)s'))
LOGGER.addHandler(LOGGER_SH)

FileHandler 完美运行,我可以看到所有日志级别的所有预期消息都显示在日志中。 SysLogHandler 无法正常工作。我在 syslog 输出中看不到任何 LOGGER.info()LOGGER.debug() 消息。我可以看到错误和警告消息,但看不到信息或调试。即使调整/etc/syslog.conf 文件也没有效果(即使在使用launchctl 显式重新加载系统日志守护程序之后)。我在这里错过了什么?

【问题讨论】:

  • 你确定你对该文件有写权限吗?
  • @inspectorG4dget 您指的是哪个文件?我已经说过的 FileHandler 附加的 syslog.log 文件工作得很好,或者 /var/run/syslog 套接字,其中一些消息(但不是全部)被 syslog 记录到?显然权限不是问题。

标签: python macos logging python-3.x


【解决方案1】:

试试:address='/dev/log'

文档有点混乱,但是“地址”应该是一个 unix 域套接字,而不是一个文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-20
    • 2020-06-26
    相关资源
    最近更新 更多