diff --git a/libagent/util.py b/libagent/util.py index 6c397aa..c10b0b6 100644 --- a/libagent/util.py +++ b/libagent/util.py @@ -179,13 +179,22 @@ class Reader(object): self._captured = None -def setup_logging(verbosity, **kwargs): +def setup_logging(verbosity, filename=None): """Configure logging for this tool.""" - fmt = ('%(asctime)s %(levelname)-12s %(message)-100s ' - '[%(filename)s:%(lineno)d]') levels = [logging.WARNING, logging.INFO, logging.DEBUG] level = levels[min(verbosity, len(levels) - 1)] - logging.basicConfig(format=fmt, level=level, **kwargs) + logging.root.setLevel(level) + + fmt = logging.Formatter('%(asctime)s %(levelname)-12s %(message)-100s ' + '[%(filename)s:%(lineno)d]') + hdlr = logging.StreamHandler() # stderr + hdlr.setFormatter(fmt) + logging.root.addHandler(hdlr) + + if filename: + hdlr = logging.FileHandler(filename, 'a') + hdlr.setFormatter(fmt) + logging.root.addHandler(hdlr) def memoize(func):