js css html

为Python日志加点“颜色”

2023-04-18  本文已影响0人  AlienPaul

前言

编写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变量。

文字颜色支持如下几种:

除了文字颜色外,还可以指定背景颜色。统一命名格式为bg_{颜色}。如下所示:

文字样式还支持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/

上一篇 下一篇

猜你喜欢

热点阅读