Procházet zdrojové kódy

celeryd: Show helpful message instead of traceback for unknown loglevel.

Ask Solem před 14 roky
rodič
revize
4ea26d76e2
1 změnil soubory, kde provedl 11 přidání a 2 odebrání
  1. 11 2
      celery/apps/worker.py

+ 11 - 2
celery/apps/worker.py

@@ -76,8 +76,13 @@ class Worker(object):
             self.include = self.include.split(",")
 
         if not isinstance(self.loglevel, int):
-            self.loglevel = LOG_LEVELS[self.loglevel.upper()]
-
+            try:
+                self.loglevel = LOG_LEVELS[self.loglevel.upper()]
+            except KeyError:
+                self.die("Unknown level %r. Please use one of %s." % (
+                            self.loglevel,
+                            "|".join(l for l in LOG_LEVELS.keys()
+                                        if isinstance(l, basestring))))
     def run(self):
         self.init_loader()
         self.init_queues()
@@ -228,6 +233,10 @@ class Worker(object):
                                               info=info,
                                               hostname=self.hostname)
 
+    def die(self, msg, exitcode=1):
+        sys.stderr.write("Error: %s\n" % (msg, ))
+        sys.exit(exitcode)
+
 
 def install_worker_int_handler(worker):