我在linux上工作,进程rsyslogd正在侦听端口514。 以下代码无法写入/ var / log / syslog。 有人知道这是什么问题吗?
import logging
import logging.handlers
root_logger = logging.getLogger()
root_logger.setLevel(config.get_value("log_level"))
syslog_hdlr = SysLogHandler(address='/dev/log', facility=SysLogHandler.LOG_DAEMON)
syslog_hdlr.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(name)s: %(levelname)s %(message)s')
syslog_hdlr.setFormatter(formatter)
root_logger.addHandler(syslog_hdlr)
logger = logging.getLogger("imapcd.daemon")
logger.debug('test')
答案 0 :(得分:9)
如果我做了一些更改,这段代码在我的系统中运行正常:
import logging.handlers as sh
syslog_hdlr = sh.SysLogHandler(address='/dev/log', facility=sh.SysLogHandler.LOG_DAEMON)
和
root_logger.setLevel(logging.DEBUG)
因此,检查从config
获取的日志记录级别并不比DEBUG
更严格(例如:如果设置为INFO
则不会打印调试消息。)
如果您仍未在syslog上看到任何内容,请尝试使用syslog
模块,看看您是否从中获得了任何内容:
import syslog
syslog.syslog(syslog.LOG_ERR, "MY MESSAGE")