RoiHatam
RoiHatam

Reputation: 896

Try to write into syslog

I am working in linux and the process rsyslogd is listening to port 514. The following code can't write into /var/log/syslog. Is anybody know what is the problem?

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')

Upvotes: 0

Views: 9971

Answers (1)

Salem
Salem

Reputation: 12986

This code works fine in my system if I make some changes:

import logging.handlers as sh
syslog_hdlr = sh.SysLogHandler(address='/dev/log', facility=sh.SysLogHandler.LOG_DAEMON)

and

root_logger.setLevel(logging.DEBUG)

So check the logging level you are getting from config is not more restrictive than DEBUG (ex: if it is set to INFO no debug messages are printed).

If you still don't see anything on syslog try to use the syslog module and see if you get anything from there:

import syslog
syslog.syslog(syslog.LOG_ERR, "MY MESSAGE")

Upvotes: 9

Related Questions