Kaynağa Gözat

Add CELERYD_FORCE_HIJACK_ROOT_LOGGER option

John Watson 14 yıl önce
ebeveyn
işleme
6b8377d5b5
2 değiştirilmiş dosya ile 6 ekleme ve 2 silme
  1. 1 1
      celery/app/defaults.py
  2. 5 1
      celery/log.py

+ 1 - 1
celery/app/defaults.py

@@ -98,6 +98,7 @@ NAMESPACES = {
         "CONCURRENCY": Option(0, type="int"),
         "ETA_SCHEDULER": Option("celery.utils.timer2.Timer"),
         "ETA_SCHEDULER_PRECISION": Option(1.0, type="float"),
+        "FORCE_HIJACK_ROOT_LOGGER": Option(False, type="bool"),
         "CONSUMER": Option("celery.worker.consumer.Consumer"),
         "LOG_FORMAT": Option(DEFAULT_PROCESS_LOG_FMT),
         "LOG_COLOR": Option(type="bool"),
@@ -126,7 +127,6 @@ NAMESPACES = {
         "LOG_FILE": Option(),
         "LOG_FORMAT": Option(DEFAULT_LOG_FMT),
     },
-
     "EMAIL": {
         "HOST": Option("localhost"),
         "PORT": Option(25, type="int"),

+ 5 - 1
celery/log.py

@@ -92,6 +92,10 @@ class Logging(object):
                                                colorize=colorize)
         if not receivers:
             root = logging.getLogger()
+
+            if self.app.conf.CELERYD_FORCE_HIJACK_ROOT_LOGGER:
+                root.handlers = []
+
             mp = mputil.get_logger()
             for logger in (root, mp):
                 self._setup_logger(logger, logfile,
@@ -134,7 +138,7 @@ class Logging(object):
         format = format or self.format
         colorize = self.app.either("CELERYD_LOG_COLOR", colorize)
 
-        if not root:
+        if not root or self.app.conf.CELERYD_FORCE_HIJACK_ROOT_LOGGER:
             return self._setup_logger(self.get_default_logger(loglevel, name),
                                       logfile, format, colorize, **kwargs)
         self.setup_logging_subsystem(loglevel, logfile,