aboutsummaryrefslogtreecommitdiff
path: root/voctogui
diff options
context:
space:
mode:
Diffstat (limited to 'voctogui')
-rw-r--r--voctogui/lib/loghandler.py35
-rwxr-xr-xvoctogui/voctogui.py11
2 files changed, 40 insertions, 6 deletions
diff --git a/voctogui/lib/loghandler.py b/voctogui/lib/loghandler.py
new file mode 100644
index 0000000..4e48c7d
--- /dev/null
+++ b/voctogui/lib/loghandler.py
@@ -0,0 +1,35 @@
+#!/usr/bin/python3
+import logging
+
+class LogFormatter(logging.Formatter):
+ def __init__(self, docolor):
+ super().__init__()
+ self.docolor = docolor
+
+ def formatMessage(self, record):
+ if self.docolor:
+ c_lvl = 33
+ c_mod = 32
+ c_msg = 0
+
+ if record.levelno == logging.WARNING:
+ c_lvl = 31
+ #c_mod = 33
+ c_msg = 33
+
+ elif record.levelno > logging.WARNING:
+ c_lvl = 31
+ c_mod = 31
+ c_msg = 31
+
+ fmt = '\x1b['+str(c_lvl)+'m%(levelname)8s\x1b[0m \x1b['+str(c_mod)+'m%(name)s\x1b['+str(c_msg)+'m: %(message)s\x1b[0m'
+ else:
+ fmt = '%(levelname)8s %(name)s: %(message)s'
+
+ return fmt % record.__dict__
+
+
+class LogHandler(logging.StreamHandler):
+ def __init__(self, docolor):
+ super().__init__()
+ self.setFormatter(LogFormatter(docolor))
diff --git a/voctogui/voctogui.py b/voctogui/voctogui.py
index 9f0cc0a..083b004 100755
--- a/voctogui/voctogui.py
+++ b/voctogui/voctogui.py
@@ -29,6 +29,7 @@ Gtk.init([])
from lib.args import Args
from lib.config import Config
from lib.ui import Ui
+from lib.loghandler import LogHandler
import lib.connection as Connection
@@ -85,6 +86,9 @@ def main():
# configure logging
docolor = (Args.color == 'always') or (Args.color == 'auto' and sys.stderr.isatty())
+ handler = LogHandler(docolor)
+ logging.root.addHandler(handler)
+
if Args.verbose >= 2:
level = logging.DEBUG
elif Args.verbose == 1:
@@ -92,12 +96,7 @@ def main():
else:
level = logging.WARNING
- if docolor:
- format = '\x1b[33m%(levelname)8s\x1b[0m \x1b[32m%(name)s\x1b[0m: %(message)s'
- else:
- format = '%(levelname)8s %(name)s: %(message)s'
-
- logging.basicConfig(level=level, format=format)
+ logging.root.setLevel(level)
# make killable by ctrl-c
logging.debug('setting SIGINT handler')