diff --git a/docs/config.rst b/docs/config.rst index e1affe5b..0cb5f5da 100644 --- a/docs/config.rst +++ b/docs/config.rst @@ -97,6 +97,12 @@ Core configuration values The file to dump debug log data to when Mopidy is run with the :option:`mopidy --save-debug-log` option. +.. confval:: logging/config_file + + Config file that overrides all logging settings, see `the Python + logging docs `_ + for details. + .. confval:: loglevels/* The ``loglevels`` config section can be used to change the log level for diff --git a/mopidy/config/__init__.py b/mopidy/config/__init__.py index 3cbc92b3..df76b17d 100644 --- a/mopidy/config/__init__.py +++ b/mopidy/config/__init__.py @@ -15,6 +15,7 @@ _logging_schema = ConfigSchema('logging') _logging_schema['console_format'] = String() _logging_schema['debug_format'] = String() _logging_schema['debug_file'] = Path() +_logging_schema['config_file'] = Path(optional=True) _loglevels_schema = LogLevelConfigSchema('loglevels') diff --git a/mopidy/config/default.conf b/mopidy/config/default.conf index 037645cc..b525ef47 100644 --- a/mopidy/config/default.conf +++ b/mopidy/config/default.conf @@ -2,6 +2,7 @@ console_format = %(levelname)-8s %(message)s debug_format = %(levelname)-8s %(asctime)s [%(process)d:%(threadName)s] %(name)s\n %(message)s debug_file = mopidy.log +config_file = [loglevels] pykka = info diff --git a/mopidy/utils/log.py b/mopidy/utils/log.py index d17206aa..3263778f 100644 --- a/mopidy/utils/log.py +++ b/mopidy/utils/log.py @@ -1,6 +1,7 @@ from __future__ import unicode_literals import logging +import logging.config import logging.handlers from . import versioning @@ -15,6 +16,9 @@ def setup_logging(config, verbosity_level, save_debug_log): # New in Python 2.7 logging.captureWarnings(True) + if config['logging']['config_file']: + logging.config.fileConfig(config['logging']['config_file']) + logger = logging.getLogger('mopidy.utils.log') logger.info('Starting Mopidy %s', versioning.get_version())