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

使用colorlog模块添加彩色日志输出功能

发布时间:2023-12-15 09:29:37

Colorlog是一个Python模块,它为日志消息添加彩色效果,使日志更易于阅读和理解。它是建立在Python标准库logging模块之上的一个轻量级模块,使用简单且功能强大。

以下是一个使用Colorlog模块的示例:

import colorlog
import logging

# 创建一个logger实例
logger = logging.getLogger('example_logger')
logger.setLevel(logging.DEBUG)

# 创建一个Colorlog的实例
log_formatter = colorlog.ColoredFormatter(
    "%(log_color)s%(asctime)s %(levelname)s %(message)s",
    datefmt='%Y-%m-%d %H:%M:%S',
    log_colors={
        'DEBUG': 'cyan',
        'INFO': 'green',
        'WARNING': 'yellow',
        'ERROR': 'red',
        'CRITICAL': 'red,bg_white',
    })

# 添加Colorlog的handler
console_handler = logging.StreamHandler()
console_handler.setFormatter(log_formatter)
logger.addHandler(console_handler)

# 输出不同级别的日志消息
logger.debug("这是一个DEBUG级别的日志消息")
logger.info("这是一个INFO级别的日志消息")
logger.warning("这是一个WARNING级别的日志消息")
logger.error("这是一个ERROR级别的日志消息")
logger.critical("这是一个CRITICAL级别的日志消息")

运行上述代码会得到以下输出:

2019-09-05 16:42:25 DEBUG 这是一个DEBUG级别的日志消息
2019-09-05 16:42:25 INFO 这是一个INFO级别的日志消息
2019-09-05 16:42:25 WARNING 这是一个WARNING级别的日志消息
2019-09-05 16:42:25 ERROR 这是一个ERROR级别的日志消息
2019-09-05 16:42:25 CRITICAL 这是一个CRITICAL级别的日志消息

在上面的示例中,我们首先导入了colorlog和logging模块。然后,我们创建了一个名为example_logger的logger实例,并将其日志级别设置为DEBUG。接下来,我们创建了一个ColoredFormatter实例,该实例定义了日志消息的格式和颜色。紧接着,我们创建了一个StreamHandler实例,并为其设置刚刚创建的ColoredFormatter实例。最后,我们将StreamHandler添加到logger实例中。

在输出的日志消息中,%(log_color)s是用来指定颜色的占位符。log_colors参数是一个字典,用于指定不同级别的日志消息应该具有的颜色。在上面的示例中,DEBUG级别的日志消息为青色,INFO级别的为绿色,WARNING级别的为黄色,ERROR和CRITICAL级别的为红色。

使用Colorlog模块可以使日志更加醒目和易读,方便进行日志级别的区分和排查错误。