# -*- coding: utf-8 -*- """Logging extension with tqdm Copyright (c) 2017 Takaaki Hori (thori@merl.com) This software is released under the MIT License. http://opensource.org/licenses/mit-license.php """ import sys import logging from tqdm import tqdm # tqdm logging handler class TqdmLoggingHandler(logging.Handler): def __init__ (self, level=logging.NOTSET): super (self.__class__, self).__init__ (level) def emit (self, record): try: msg = self.format (record) tqdm.write ('\r' + msg, file=sys.stdout) self.flush () except (KeyboardInterrupt, SystemExit): raise except: self.handleError(record) # logger configulation def config(logger, logfile='', mode='w', silent=False, debug=False, format="%(asctime)s %(levelname)s %(message)s"): #logger = logging.getLogger("root") if silent: level = logging.WARN else: level = logging.INFO stdhandler = TqdmLoggingHandler(level=level) stdhandler.setFormatter(logging.Formatter(format)) logger.addHandler(stdhandler) if logfile: filehandler = logging.FileHandler(logfile, mode=mode) filehandler.setFormatter(logging.Formatter(format)) logger.addHandler(filehandler) if debug: logger.setLevel(logging.DEBUG) else: logger.setLevel(logging.INFO) return logger