Ignore syslog settings if /dev/log is not present

When journald crashes, the /dev/log socket is not present
and rootwrap calls fail with an unclear error message.

Ignore syslog configuration, log a warning and proceed in
those cases.

Change-Id: I4152593696ad63a977f127da3b00934feb14b069
Closes-Bug: #1730949
This commit is contained in:
Thierry Carrez 2017-11-23 15:31:09 +01:00
parent 0ff2675f7e
commit 574dede5ef
1 changed files with 9 additions and 2 deletions

View File

@ -99,10 +99,17 @@ class RootwrapConfig(object):
def setup_syslog(execname, facility, level):
try:
handler = logging.handlers.SysLogHandler(address='/dev/log',
facility=facility)
except IOError:
logging.warning("Unable to setup syslog, maybe /dev/log socket needs "
"to be restarted. Ignoring syslog configuration "
"options.")
return
rootwrap_logger = logging.getLogger()
rootwrap_logger.setLevel(level)
handler = logging.handlers.SysLogHandler(address='/dev/log',
facility=facility)
handler.setFormatter(logging.Formatter(
os.path.basename(execname) + ': %(message)s'))
rootwrap_logger.addHandler(handler)