Actually, 只有Console是支持颜色的,之前我提到过终端中颜色的原理Text Color Of Console。 这个module就是在输出到终端的时候,前后加了转义序列ESC(e.g."\033[1;35;40m 高亮洋红背景黑 \033[0m") 我在demo中顺便加入了输出log到文件的简单用法来对比。
classColoredFormatter(logging.Formatter): # 略... defformat(self, record): # 略... # Add a reset code to the end of the message # (if it wasn't explicitly added in format str) ifself.reset andnot message.endswith(escape_codes['reset']): message += escape_codes['reset']
log = logging.getLogger(__name__) log.setLevel(LOG_LEVEL) # set file and console hander to log log.addHandler(handler_stream) log.addHandler(handler_file)
log.debug("A quirky message only developers care about") log.info("Curious users might want to know this") log.warn("Something is wrong and any user should be informed") log.error("Serious stuff, this is red for a reason") log.critical("OH NO everything is on fire")