docs: def _build_logger(self, level=logging.INFO):
          """ return a logger. if logger is none, generate a logger from stdout """
          self._debug_stream = StringIO()
          logger = logging.getLogger('sprinter')
          # stdout log
          out_hdlr = logging.StreamHandler(sys.stdout)
          out_hdlr.setLevel(level)
          logger.addHandler(out_hdlr)
          # debug log
          debug_hdlr = logging.StreamHandler(self._debug_stream)
          debug_hdlr.setFormatter(logging.Formatter('%(asctime)s %(message)s'))
          debug_hdlr.setLevel(logging.DEBUG)
          logger.addHandler(debug_hdlr)
          logger.setLevel(logging.DEBUG)
          return logger