Преглед на файлове

Logging output was broken

Ask Solem преди 14 години
родител
ревизия
f6c1afb697
променени са 2 файла, в които са добавени 7 реда и са изтрити 3 реда
  1. 5 1
      celery/log.py
  2. 2 2
      celery/utils/encoding.py

+ 5 - 1
celery/log.py

@@ -39,7 +39,11 @@ class ColorFormatter(logging.Formatter):
         color = self.colors.get(levelname)
 
         if self.use_color and color:
-            record.msg = unicode(color(safe_str(record.msg)))
+            try:
+                record.msg = color(unicode(record.msg, "utf-8", "replace"))
+            except Exception, exc:
+                record.msg = "<Unrepresentable %r: %r>" % (type(record.msg),
+                                                           exc)
 
         # Very ugly, but have to make sure processName is supported
         # by foreign logger instances.

+ 2 - 2
celery/utils/encoding.py

@@ -13,7 +13,7 @@ def safe_str(s, errors="replace"):
         if isinstance(s, unicode):
             return s.encode(encoding, errors)
         return unicode(s, encoding, errors)
-    except Exception:
-        return "<Unrepresentable %r>" % (type(s), )
+    except Exception, exc:
+        return "<Unrepresentable %r: %r>" % (type(s), exc)