在记录到文件 - python日志记录模块时禁止ANSI代码

时间:2017-05-08 04:58:36

标签: python logging

使用下面的python代码片段将输出记录到屏幕和日志文件。但是当使用ANSI转义代码突出显示几行时,如下所示,它在屏幕上打印得很漂亮,但是在日志文件中,由于ANSI转义码,文本会被加扰。

logger.info("\033[0;30;47m-\033[00m" * 10)

在日志文件中,它包含ANSI转义码,如下所示。

2017-05-07 02:28:52,360 INFO ^ [[0; 30; 47m - ^ [[00m ^ [[0; 30; 47m - ^ [[00m ^ [[0; 30; 47m-^] [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30 ;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0 ; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [ [0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [ [00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30; 47m- ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^ [[00米^ [[0; 30;47米 - ^

def initialize_logging(options):
    logger = logging.getLogger(__name__)
    formatter = logging.Formatter('%(asctime)s %(levelname)s\t%(message)s')
    level = logging.__dict__.get(options.loglevel.upper(),logging.DEBUG)
    logger.setLevel(level)

    if not options.quiet:
        hdlr = logging.StreamHandler(sys.stderr)
        hdlr.setFormatter(formatter)
        logger.addHandler(hdlr)

    logfile = options.logfile
    if options.clean and os.path.isfile(logfile):
        os.remove(logfile)
    hdlr2 = logging.FileHandler(logfile)
    hdlr2.setFormatter(formatter)
    logger.addHandler(hdlr2)

    return logger

如何在登录日志文件时避免使用ANSI转义码?任何建议都会有所帮助。

0 个答案:

没有答案