欢迎访问宙启技术站
智能推送

使用colorlog在Python中打印带有颜色的日志信息

发布时间:2023-12-23 03:14:55

colorlog是一个用于在Python中打印带有颜色的日志信息的库。它扩展了标准库中的logging模块,使得日志信息更加易读和美观。

下面是一个使用colorlog的例子:

import logging
import colorlog

# 创建一个ColorLog的logger对象
logger = colorlog.getLogger()
# 设置logger的等级为DEBUG
logger.setLevel(logging.DEBUG)

# 创建一个控制台输出的handler,并设置其输出等级为DEBUG
console_handler = colorlog.StreamHandler()
console_handler.setLevel(logging.DEBUG)

# 定义输出格式
formatter = colorlog.ColoredFormatter(
    '%(log_color)s%(asctime)s %(levelname)s %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S',
    reset=True,
    log_colors={
        'DEBUG':    'green',
        'INFO':     'blue',
        'WARNING':  'yellow',
        'ERROR':    'red',
        'CRITICAL': 'red,bg_white',
    },
    secondary_log_colors={
        'message': {
            'ERROR':    'red',
            'CRITICAL': 'red,bg_white',
        }
    }
)
# 将格式设置给handler
console_handler.setFormatter(formatter)

# 将handler添加到logger对象中
logger.addHandler(console_handler)

# 输出不同级别的日志信息
logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')

上面的例子中,首先通过getLogger()方法创建了一个logger对象。通过调用setLevel()方法设置了logger的等级为DEBUG。然后创建了一个控制台输出的handler,并设置其输出等级为DEBUG。之后创建了一个ColoredFormatter对象,并通过setFormatter()方法将其格式设置给handler。设置的格式中包含了一个占位符%(log_color)s,它用于设置日志信息的颜色。接着将这个handler添加到logger对象中。最后调用不同级别的日志方法,通过logger对象打印不同级别的日志信息。

以上代码运行后,会在控制台打印出带颜色的日志信息。不同级别的日志信息会有不同的颜色,从而使得日志信息更加易于阅读和区分。

colorlog库还提供了其他一些功能,比如文件输出、日志文件切割等。以上只是一个简单的例子,更多的功能和用法可以参考colorlog的官方文档。