import logging
import logging.handlers
import sys


DEFAULT_FORMAT = "%(asctime)s %(levelname)-8s %(name)s:%(lineno)d: %(message)s"
DEFAULT_FORMATTER = logging.Formatter(DEFAULT_FORMAT)


def configureConsole(log=None, level=logging.INFO):
    """Convenience function to configure a logger that outputs to stdout"""
    log = log or logging.getLogger()
    handler = logging.StreamHandler(sys.stdout)
    handler.setFormatter(DEFAULT_FORMATTER)
    log.addHandler(handler)
    log.setLevel(level=level)


def configureFileHandler(file_name, log=None, level=logging.INFO):
    log = log or logging.getLogger()
    handler = logging.handlers.RotatingFileHandler(file_name, maxBytes=2097152, backupCount=5)
    handler.setFormatter(DEFAULT_FORMATTER)
    log.addHandler(handler)
    log.setLevel(level=level)