Sfoglia il codice sorgente

Don't close others logger file descriptors.

Ask Solem 16 anni fa
parent
commit
2e1764f15e
4 ha cambiato i file con 7 aggiunte e 18 eliminazioni
  1. 1 1
      README
  2. 1 1
      celery/__init__.py
  3. 2 11
      celery/bin/celeryd.py
  4. 3 5
      celery/log.py

+ 1 - 1
README

@@ -2,7 +2,7 @@
 celery - Distributed Task Queue for Django.
 ============================================
 
-:Version: 0.3.5
+:Version: 0.3.7
 
 Introduction
 ============

+ 1 - 1
celery/__init__.py

@@ -1,5 +1,5 @@
 """Distributed Task Queue for Django"""
-VERSION = (0, 3, 5)
+VERSION = (0, 3, 7)
 __version__ = ".".join(map(str, VERSION))
 __author__ = "Ask Solem"
 __contact__ = "askh@opera.com"

+ 2 - 11
celery/bin/celeryd.py

@@ -62,7 +62,6 @@ from django.conf import settings
 from celery.log import emergency_error
 from celery.conf import LOG_LEVELS, DAEMON_LOG_FILE, DAEMON_LOG_LEVEL
 from celery.conf import DAEMON_CONCURRENCY, DAEMON_PID_FILE
-from celery.log import setup_logger
 from celery.messaging import TaskConsumer
 from celery import conf
 from celery import discovery
@@ -173,24 +172,16 @@ def run_worker(concurrency=DAEMON_CONCURRENCY, detach=False,
         loglevel = LOG_LEVELS[loglevel.upper()]
     if not detach:
         logfile = None # log to stderr when not running in the background.
-    logger = setup_logger(logfile=logfile, loglevel=loglevel)
-
-    def say(msg):
-        """Log the message using loglevel ``INFO`` if running in the
-        background, else just print the message to ``stdout``."""
-        if detach:
-            return logger.info(msg)
-        print(msg)
 
     if discard:
         discarded_count = discard_all()
         what = discarded_count > 1 and "messages" or "message"
-        say("discard: Erased %d %s from the queue.\n" % (
+        print("discard: Erased %d %s from the queue.\n" % (
                 discarded_count, what))
 
     # Dump configuration to screen so we have some basic information
     # when users sends e-mails.
-    say(STARTUP_INFO_FMT % {
+    print(STARTUP_INFO_FMT % {
             "vhost": settings.AMQP_VHOST,
             "host": settings.AMQP_SERVER,
             "port": settings.AMQP_PORT,

+ 3 - 5
celery/log.py

@@ -15,10 +15,9 @@ def setup_logger(loglevel=DAEMON_LOG_LEVEL, logfile=None, format=LOG_FORMAT,
     """
     import multiprocessing
     logger = multiprocessing.get_logger()
-    for handler in logger.handlers:
-        if hasattr(handler, "close"):
-            handler.close()
-    logger.handlers = []
+    logger.setLevel(loglevel)
+    if logger.handlers:
+        return logger
     if logfile:
         if hasattr(logfile, "write"):
             log_file_handler = logging.StreamHandler(logfile)
@@ -29,7 +28,6 @@ def setup_logger(loglevel=DAEMON_LOG_LEVEL, logfile=None, format=LOG_FORMAT,
         logger.addHandler(log_file_handler)
     else:
         multiprocessing.log_to_stderr()
-    logger.setLevel(loglevel)
     return logger