示例#1
0
def get_log_object(fname='log.log', loggername='pipeline'):
    import logging
    import os

    def add_file_handler(fname):
        file_handler = logging.FileHandler(fname)
        file_handler.setLevel(logging.DEBUG)
        file_handler.setFormatter(fileformatter)
        logger.addHandler(file_handler)

    class MyFormatter(logging.Formatter):
        def format(self, record):
            try:
                msg = record.msg.split(':', 1)
                if len(msg) == 2:
                    record.msg = '[{:<15}]{}'.format(msg[0], msg[1])
            except:
                pass
            return logging.Formatter.format(self, record)

    logger = logging.getLogger(loggername)
    logger.setLevel(logging.DEBUG)

    f = '[%(asctime)s][%(processName)-5s][%(levelname)-21s]%(message)s'
    formatter = MyFormatter(f)
    fileformatter = logging.Formatter(f)

    stream_handler = logging.StreamHandler()
    stream_handler.setLevel(logging.DEBUG)
    stream_handler.setFormatter(formatter)
    logger.addHandler(stream_handler)

    # Log level colors
    logging.addLevelName(
        logging.DEBUG,
        "\033[1;34m{}\033[1;0m".format(logging.getLevelName(logging.DEBUG)))
    logging.addLevelName(
        logging.INFO,
        "\033[1;32m{}\033[1;0m".format(logging.getLevelName(logging.INFO)))
    logging.addLevelName(
        logging.WARNING,
        "\033[1;33m{}\033[1;0m".format(logging.getLevelName(logging.WARNING)))
    logging.addLevelName(
        logging.ERROR,
        "\033[1;31m{}\033[1;0m".format(logging.getLevelName(logging.ERROR)))
    logging.addLevelName(
        logging.CRITICAL,
        "\033[1;41m{}\033[1;0m".format(logging.getLevelName(logging.CRITICAL)))

    fpath = os.join(os.path.dirname(os.path.abspath(__file__)), fname)
    add_file_handler(fpath)
示例#2
0
 def add_file_handler(fname):
     file_handler = logging.FileHandler(fname)
     file_handler.setLevel(logging.DEBUG)
     file_handler.setFormatter(fileformatter)
     logger.addHandler(file_handler)