diff options
author | MaZderMind <git@mazdermind.de> | 2015-11-26 17:15:19 +0100 |
---|---|---|
committer | MaZderMind <git@mazdermind.de> | 2015-11-26 17:15:19 +0100 |
commit | 6c415915a5980ed8f750a6d73d243b2a4842adf2 (patch) | |
tree | 8a08f422270b0c5c86257461dc256ea30f6255b4 /voctocore | |
parent | d513ed2bb25250945daebb4804324cd5e6ad5048 (diff) |
color warnings and errors differently, fixes #24
Diffstat (limited to 'voctocore')
-rw-r--r-- | voctocore/lib/loghandler.py | 35 | ||||
-rwxr-xr-x | voctocore/voctocore.py | 11 |
2 files changed, 40 insertions, 6 deletions
diff --git a/voctocore/lib/loghandler.py b/voctocore/lib/loghandler.py new file mode 100644 index 0000000..4e48c7d --- /dev/null +++ b/voctocore/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/voctocore/voctocore.py b/voctocore/voctocore.py index ad3f1cf..3a4125a 100755 --- a/voctocore/voctocore.py +++ b/voctocore/voctocore.py @@ -24,6 +24,7 @@ GObject.threads_init() from lib.args import Args from lib.pipeline import Pipeline from lib.controlserver import ControlServer +from lib.loghandler import LogHandler # main class class Voctocore(object): @@ -56,6 +57,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: @@ -63,12 +67,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') |