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

Python中使用logging模块实现日志输出的颜色区分

发布时间:2024-01-09 23:12:17

在Python中,可以使用logging模块来实现日志输出的颜色区分。由于logging模块默认情况下不支持颜色控制,需要借助第三方库colorlog来实现。

以下是使用logging模块和colorlog库来实现日志输出的颜色区分的示例代码:

import logging
import colorlog

# 创建Logger对象
logger = logging.getLogger('example_logger')
logger.setLevel(logging.DEBUG)

# 创建StreamHandler对象,用于输出日志到控制台
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)

# 创建ColorFormatter对象,用于设置日志输出的格式和颜色
color_formatter = colorlog.ColoredFormatter(
    '%(log_color)s%(levelname)s:%(message)s%(reset)s',
    log_colors={
        'DEBUG': 'green',
        'INFO': 'blue',
        'WARNING': 'yellow',
        'ERROR': 'red',
        'CRITICAL': 'red,bg_white',
    },
    secondary_log_colors={},
    style='%'
)

# 将ColorFormatter对象设置为console_handler的格式化器
console_handler.setFormatter(color_formatter)

# 将console_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.')

在上述代码中,首先创建了一个Logger对象,然后创建了一个StreamHandler对象用于输出日志到控制台。接着创建了一个ColorFormatter对象,用于设置日志输出的格式和颜色。可以通过修改log_colors字典来设置不同级别日志的颜色,也可以修改secondary_log_colors字典来设置日志中其他部分的颜色。

最后,将ColorFormatter对象设置为console_handler对象的格式化器,并将console_handler添加到logger中。这样,当调用logger的日志输出方法时,会根据不同级别的日志设置相应的颜色输出到控制台。

运行上述代码,将会得到如下输出:

![image](https://user-images.githubusercontent.com/57876719/137053754-7ea50a84-20e2-47e9-b9ab-0f27f1e53568.png)

从输出中可以看出,不同级别的日志内容以不同的颜色显示。DEBUG级别为绿色,INFO级别为蓝色,WARNING级别为黄色,ERROR和CRITICAL级别为红色。

通过使用logging模块和colorlog库,可以方便地实现在Python中对日志输出进行颜色区分,提高日志信息的可读性和可视化效果。