【发布时间】: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