From 40cadbfa2659fe7d4adafc7060f04a3631cc57c7 Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Thu, 6 Feb 2014 23:18:25 +0100 Subject: [PATCH] Fix increasing of verbosity using loglevels config --- docs/changelog.rst | 6 ++++++ mopidy/utils/log.py | 9 +++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index e6082f90..f29f86ab 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -8,6 +8,12 @@ This changelog is used to track all major changes to Mopidy. v0.19.0 (unreleased) ==================== +**Configuration** + +- Fix the log setup so that it is possible to increase the amount of logging + from a specific logger using the ``loglevels`` config section. (Fixes: + :issue:`684`) + **Models** - The type of :attr:`mopidy.models.Playlist.last_modified` has been redefined diff --git a/mopidy/utils/log.py b/mopidy/utils/log.py index 6004b9f9..c3a6a3d4 100644 --- a/mopidy/utils/log.py +++ b/mopidy/utils/log.py @@ -62,10 +62,15 @@ LOG_LEVELS = { class VerbosityFilter(logging.Filter): - def __init__(self, verbosity_level): + def __init__(self, verbosity_level, loglevels): self.verbosity_level = verbosity_level + self.loglevels = loglevels def filter(self, record): + for name, required_log_level in self.loglevels.items(): + if record.name == name or record.name.startswith(name + '.'): + return record.levelno >= required_log_level + if record.name.startswith('mopidy'): required_log_level = LOG_LEVELS[self.verbosity_level]['mopidy'] else: @@ -79,7 +84,7 @@ def setup_console_logging(config, verbosity_level): if verbosity_level > max(LOG_LEVELS.keys()): verbosity_level = max(LOG_LEVELS.keys()) - verbosity_filter = VerbosityFilter(verbosity_level) + verbosity_filter = VerbosityFilter(verbosity_level, config['loglevels']) if verbosity_level < 1: log_format = config['logging']['console_format']