summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>2014-09-11 15:25:00 +0300
committerMarkus Lehtonen <markus.lehtonen@linux.intel.com>2014-12-18 14:00:14 +0200
commite021ecaa4ff2aeaff4d103d391811fb6c88f68c7 (patch)
tree9afc2766ce7788f31fa8a578953ae52edad8b7b7
parent0d864dcc88f2c8686664031fbb5f7b810491aa9d (diff)
downloadgit-buildpackage-e021ecaa4ff2aeaff4d103d391811fb6c88f68c7.tar.gz
git-buildpackage-e021ecaa4ff2aeaff4d103d391811fb6c88f68c7.tar.bz2
git-buildpackage-e021ecaa4ff2aeaff4d103d391811fb6c88f68c7.zip
log: don't initialize handlers in GbpLogger init
Better compatibility with 3rd party modules that have their own logging initializations. Change-Id: Ic91ab54c70537061c3e76dd6317ceeec888fab36 Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
-rw-r--r--gbp/log.py30
1 files changed, 19 insertions, 11 deletions
diff --git a/gbp/log.py b/gbp/log.py
index a8e420a8..a508b677 100644
--- a/gbp/log.py
+++ b/gbp/log.py
@@ -96,31 +96,35 @@ class GbpStreamHandler(logging.StreamHandler):
class GbpLogger(logging.Logger):
"""Logger class for git-buildpackage"""
- def __init__(self, name, color='auto', *args, **kwargs):
+ def __init__(self, name, *args, **kwargs):
logging.Logger.__init__(self, name, *args, **kwargs)
- self._default_handlers = [GbpStreamHandler(sys.stdout, color),
- GbpStreamHandler(sys.stderr, color)]
- self._default_handlers[0].addFilter(GbpFilter([DEBUG, INFO]))
- self._default_handlers[1].addFilter(GbpFilter([WARNING, ERROR,
- CRITICAL]))
- for hdlr in self._default_handlers:
+ self.default_handlers = []
+
+ def init_default_handlers(self, color='auto'):
+ """Initialize and set default handlers to logger"""
+ self.default_handlers = [GbpStreamHandler(sys.stdout, color),
+ GbpStreamHandler(sys.stderr, color)]
+ self.default_handlers[0].addFilter(GbpFilter([DEBUG, INFO]))
+ self.default_handlers[1].addFilter(GbpFilter([WARNING, ERROR,
+ CRITICAL]))
+ for hdlr in self.default_handlers:
self.addHandler(hdlr)
# We don't want to propagate as we add our own handlers
self.propagate = False
def set_color(self, color):
"""Set/unset colorized output of the default handlers"""
- for hdlr in self._default_handlers:
+ for hdlr in self.default_handlers:
hdlr.set_color(color)
def set_color_scheme(self, color_scheme={}):
"""Set the color scheme of the default handlers"""
- for hdlr in self._default_handlers:
+ for hdlr in self.default_handlers:
hdlr.set_color_scheme(color_scheme)
def set_format(self, fmt):
"""Set the format of the default handlers"""
- for hdlr in self._default_handlers:
+ for hdlr in self.default_handlers:
hdlr.set_format(fmt)
@@ -170,7 +174,11 @@ def getLogger(*args, **kwargs):
"""Gbp-specific function"""
if not issubclass(logging.getLoggerClass(), GbpLogger):
logging.setLoggerClass(GbpLogger)
- return logging.getLogger(*args, **kwargs)
+ color = kwargs.pop('color') if 'color' in kwargs else 'auto'
+ logger = logging.getLogger(*args, **kwargs)
+ if not logger.default_handlers:
+ logger.init_default_handlers(color)
+ return logger
def setup(color, verbose, color_scheme=""):
"""Basic logger setup"""