mirror of
https://github.com/jlu5/PyLink.git
synced 2024-11-01 01:09:22 +01:00
core: raise better errors on common logging block syntax mistakes
These are commonly reported and include: - Commenting out the contents of logging:channels without commenting out the "channels:" heading, causing that block to become None. - Commenting out headers like "filerotation:", causing its body to become pairs in logging:files or something similar. - Leaving logging:channels:<netname> empty: this causes it to become None, so using get() on it fails.
This commit is contained in:
parent
93704d85bf
commit
49136d5abd
13
classes.py
13
classes.py
@ -90,20 +90,27 @@ class Irc(utils.DeprecatedAttributesObject):
|
|||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
channels = conf.conf['logging']['channels'][self.name]
|
channels = conf.conf['logging']['channels'][self.name]
|
||||||
except KeyError: # Not set up; just ignore.
|
except (KeyError, TypeError): # Not set up; just ignore.
|
||||||
return
|
return
|
||||||
|
|
||||||
log.debug('(%s) Setting up channel logging to channels %r', self.name,
|
log.debug('(%s) Setting up channel logging to channels %r', self.name,
|
||||||
channels)
|
channels)
|
||||||
|
|
||||||
|
# Only create handlers if they haven't already been set up.
|
||||||
if not self.loghandlers:
|
if not self.loghandlers:
|
||||||
# Only create handlers if they haven't already been set up.
|
if not isinstance(channels, dict):
|
||||||
|
log.warning('(%s) Got invalid channel logging configuration %r; are your indentation '
|
||||||
|
'and block commenting consistent?', self.name, channels)
|
||||||
|
return
|
||||||
|
|
||||||
for channel, chandata in channels.items():
|
for channel, chandata in channels.items():
|
||||||
# Fetch the log level for this channel block.
|
# Fetch the log level for this channel block.
|
||||||
level = None
|
level = None
|
||||||
if chandata is not None:
|
if isinstance(chandata, dict):
|
||||||
level = chandata.get('loglevel')
|
level = chandata.get('loglevel')
|
||||||
|
else:
|
||||||
|
log.warning('(%s) Got invalid channel logging pair %r: %r; are your indentation '
|
||||||
|
'and block commenting consistent?', self.name, filename, config)
|
||||||
|
|
||||||
handler = PyLinkChannelLogger(self, channel, level=level)
|
handler = PyLinkChannelLogger(self, channel, level=level)
|
||||||
self.loghandlers.append(handler)
|
self.loghandlers.append(handler)
|
||||||
|
6
log.py
6
log.py
@ -87,7 +87,11 @@ def stopFileLoggers():
|
|||||||
files = conf.conf['logging'].get('files')
|
files = conf.conf['logging'].get('files')
|
||||||
if files:
|
if files:
|
||||||
for filename, config in files.items():
|
for filename, config in files.items():
|
||||||
makeFileLogger(filename, config.get('loglevel'))
|
if isinstance(config, dict):
|
||||||
|
makeFileLogger(filename, config.get('loglevel'))
|
||||||
|
else:
|
||||||
|
log.warning('Got invalid file logging pair %r: %r; are your indentation and block '
|
||||||
|
'commenting consistent?', filename, config)
|
||||||
|
|
||||||
log.debug("log: Emptying log_queue")
|
log.debug("log: Emptying log_queue")
|
||||||
# Process and empty the log queue
|
# Process and empty the log queue
|
||||||
|
Loading…
Reference in New Issue
Block a user