為Python日志加點(diǎn)“顏色”

前言

編寫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'
        }

參考鏈接

https://pypi.org/project/colorlog/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容