aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/init/celery/from_celery.py
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/init/celery/from_celery.py')
-rw-r--r--mediagoblin/init/celery/from_celery.py51
1 files changed, 11 insertions, 40 deletions
diff --git a/mediagoblin/init/celery/from_celery.py b/mediagoblin/init/celery/from_celery.py
index 41fffa45..8a794abb 100644
--- a/mediagoblin/init/celery/from_celery.py
+++ b/mediagoblin/init/celery/from_celery.py
@@ -16,13 +16,13 @@
import os
import logging
+import logging.config
-from configobj import ConfigObj
-from ConfigParser import RawConfigParser
from celery.signals import setup_logging
from mediagoblin import app, mg_globals
from mediagoblin.init.celery import setup_celery_from_config
+from mediagoblin.tools.pluginapi import PluginManager
OUR_MODULENAME = __name__
@@ -36,49 +36,20 @@ def setup_logging_from_paste_ini(loglevel, **kw):
else:
logging_conf_file = 'paste.ini'
+ # allow users to set up explicitly which paste file to check via the
+ # PASTE_CONFIG environment variable
+ logging_conf_file = os.environ.get(
+ 'PASTE_CONFIG', logging_conf_file)
+
if not os.path.exists(logging_conf_file):
raise IOError('{0} does not exist. Logging can not be set up.'.format(
logging_conf_file))
- logging_conf = ConfigObj(logging_conf_file)
-
- config = logging_conf
-
- # Read raw config to avoid interpolation of formatting parameters
- raw_config = RawConfigParser()
- raw_config.readfp(open(logging_conf_file))
-
- # Set up formatting
- # Get the format string and circumvent configobj interpolation of the value
- fmt = raw_config.get('formatter_generic', 'format')
-
- # Create the formatter
- formatter = logging.Formatter(fmt)
-
- # Check for config values
- if not config.get('loggers') or not config['loggers'].get('keys'):
- print('No loggers found')
- return
-
- # Iterate all teh loggers.keys values
- for name in config['loggers']['keys'].split(','):
- if not config.get('logger_{0}'.format(name)):
- continue
-
- log_params = config['logger_{0}'.format(name)]
-
- qualname = log_params['qualname'] if 'qualname' in log_params else name
-
- if qualname == 'root':
- qualname = None
-
- logger = logging.getLogger(qualname)
-
- level = getattr(logging, log_params['level'])
- logger.setLevel(level)
+ logging.config.fileConfig(logging_conf_file)
- for handler in logger.handlers:
- handler.setFormatter(formatter)
+ for callable_hook in \
+ PluginManager().get_hook_callables('celery_logging_setup'):
+ callable_hook()
setup_logging.connect(setup_logging_from_paste_ini)