瀏覽代碼

redirect_stdouts_to_logger now supports stdout+stderr argument to select which outs to redirect

Ask Solem 13 年之前
父節點
當前提交
e43ecfb5fd
共有 1 個文件被更改,包括 6 次插入2 次删除
  1. 6 2
      celery/log.py

+ 6 - 2
celery/log.py

@@ -192,7 +192,8 @@ class Logging(object):
         return LoggerAdapter(logger, {"task_id": task_id,
                                       "task_name": task_name})
 
-    def redirect_stdouts_to_logger(self, logger, loglevel=None):
+    def redirect_stdouts_to_logger(self, logger, loglevel=None,
+            stdout=True, stderr=True):
         """Redirect :class:`sys.stdout` and :class:`sys.stderr` to a
         logging instance.
 
@@ -201,7 +202,10 @@ class Logging(object):
 
         """
         proxy = LoggingProxy(logger, loglevel)
-        sys.stdout = sys.stderr = proxy
+        if stdout:
+            sys.stdout = proxy
+        if stderr:
+            sys.stderr = proxy
         return proxy
 
     def _setup_logger(self, logger, logfile, format, colorize,