前言
編寫Python程序時(shí),默認(rèn)使用的Python logging模塊在控制臺(tái)打印是沒法指定顏色的。不同錯(cuò)誤級(jí)別的日志輸出看起來都一樣,不容易分辨出較為嚴(yán)重的錯(cuò)誤在哪。我們可以使用colorlog模塊,為不同級(jí)別的日志配置不同的控制臺(tái)文字顏色。讓較為嚴(yán)重級(jí)別的日志顏色更為醒目。
前置條件
使用pip安裝colorlog庫。
pip install colorlog
使用方式
下面給出一段簡(jiǎn)單示例:
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')
主要的配置項(xiàng)為日志級(jí)別和顏色的對(duì)應(yīng)關(guān)系,即log_colors變量。
文字顏色支持如下幾種:
- black
- red
- yellow
- blue
- purple
- cyan
- white
除了文字顏色外,還可以指定背景顏色。統(tǒng)一命名格式為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'
}