Browse Source

Now respects CELERY*_LOG_FORMAT even if using stderr. Thanks to Nikita Kozlovsky.

Ask Solem 15 years ago
parent
commit
243324aa9d
1 changed files with 13 additions and 12 deletions
  1. 13 12
      celery/log.py

+ 13 - 12
celery/log.py

@@ -34,6 +34,14 @@ def _hijack_multiprocessing_logger():
     return mputil.get_logger()
 
 
+def _detect_handler(logfile=None):
+    """Create log handler with either a filename, an open stream
+    or ``None`` (stderr)."""
+    if not logfile or hasattr(logfile, "write"):
+        return logging.StreamHandler(logfile)
+    return logging.FileHandler(logfile)
+
+
 def get_default_logger(loglevel=None):
     """Get default logger instance.
 
@@ -52,23 +60,16 @@ def setup_logger(loglevel=conf.CELERYD_LOG_LEVEL, logfile=None,
     ``stderr`` is used.
 
     Returns logger object.
-    """
 
+    """
     logger = get_default_logger(loglevel=loglevel)
     if logger.handlers: # Logger already configured
         return logger
 
-    if logfile:
-        handler = logging.FileHandler
-        if hasattr(logfile, "write"):
-            handler = logging.StreamHandler
-        loghandler = handler(logfile)
-        formatter = logging.Formatter(format)
-        loghandler.setFormatter(formatter)
-        logger.addHandler(loghandler)
-    else:
-        from multiprocessing.util import log_to_stderr
-        log_to_stderr()
+    handler = _detect_handler(logfile)
+    formatter = logging.Formatter(format)
+    handler.setFormatter(formatter)
+    logger.addHandler(handler)
     return logger