pgtoolkit/coloredformatter.py
changeset 13 16dc5dec9c36
child 78 64c62ac8f65d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pgtoolkit/coloredformatter.py	Fri Sep 09 11:56:37 2011 +0200
@@ -0,0 +1,25 @@
+import logging
+
+from pgtoolkit import highlight
+
+
+class ColoredFormatter(logging.Formatter):
+    def __init__(self, fmt, datefmt):
+        logging.Formatter.__init__(self, fmt, datefmt)
+
+    def format(self, record):
+        color = ()
+        if record.levelno == 21:
+            color = (2, None)
+        if record.levelno == logging.ERROR and not record.exc_info is None:
+            color = (11, 1)
+        if color:
+            origmsg = record.msg
+            f,b = color
+            record.msg = highlight(1, f, b) + record.msg + highlight(0)
+            res = logging.Formatter.format(self, record)
+            record.msg = origmsg
+        else:
+            res = logging.Formatter.format(self, record)
+        return res
+