使用下面的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转义码?任何建议都会有所帮助。