Browse Source

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

Ask Solem 14 years ago
parent
commit
25126e6d7d
1 changed files with 11 additions and 2 deletions
  1. 11 2
      celery/apps/worker.py

+ 11 - 2
celery/apps/worker.py

@@ -68,8 +68,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()
@@ -211,6 +216,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):