前言
编写Python程序时,默认使用的Python logging模块在控制台打印是没法指定颜色的。不同错误级别的日志输出看起来都一样,不容易分辨出较为严重的错误在哪。我们可以使用colorlog模块,为不同级别的日志配置不同的控制台文字颜色。让较为严重级别的日志颜色更为醒目。
前置条件
使用pip安装colorlog库。
pip install colorlog
使用方式
下面给出一段简单示例:
import colorlog
import logging
def init_logger():
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
if not logger.handlers:
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.DEBUG)
fmt_string = '%(log_color)s[%(asctime)s][%(name)s][%(levelname)s]%(message)s'
# black red green yellow blue purple cyan and white
log_colors = {
'DEBUG': 'cyan',
'INFO': 'green',
'WARNING': 'yellow',
'ERROR': 'red',
'CRITICAL': 'purple'
}
fmt = colorlog.ColoredFormatter(fmt_string, log_colors=log_colors)
stream_handler.setFormatter(fmt)
logger.addHandler(stream_handler)
return logger
def test():
logger = init_logger()
logger.debug('demo log')
logger.info('info log')
logger.warning('warning log')
logger.error('fatal log')
logger.critical('critical log')
主要的配置项为日志级别和颜色的对应关系,即log_colors
变量。
文字颜色支持如下几种:
- black
- red
- yellow
- blue
- purple
- cyan
- white
除了文字颜色外,还可以指定背景颜色。统一命名格式为bg_{颜色}
。如下所示:
- bg_black
- bg_red
- bg_yellow
- bg_blue
- bg_purple
- bg_cyan
- bg_white
文字样式还支持bold。例如bg_bold_cyan
或者bold_cyan
。
前景色和背景色支持组合使用,例如:
log_colors = {
'DEBUG': 'cyan',
'INFO': 'green',
'WARNING': 'yellow',
'ERROR': 'bg_red',
'CRITICAL': 'bg_purple,bold_cyan'
}
网友评论