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

使用colorlog模块在Python中实现带有颜色标识的日志输出

发布时间:2023-12-15 09:36:47

colorlog 是一个 Python 模块,它为日志消息添加颜色标识符,以便于更容易地区分和查看不同的日志级别。它还提供了一些其他功能,如格式化日志消息,添加时间戳等。

要使用 colorlog 模块,首先需要通过 pip 进行安装:

pip install colorlog

下面是一个使用 colorlog 实现带有颜色标识的日志输出的示例:

import logging
import colorlog

# 创建一个 logger
logger = logging.getLogger('example')
logger.setLevel(logging.DEBUG)

# 创建一个 StreamHandler 并设置日志级别
handler = logging.StreamHandler()
handler.setLevel(logging.DEBUG)

# 创建一个 ColorFormatter,并设置颜色及日志格式
formatter = colorlog.ColoredFormatter(
    '%(log_color)s%(levelname)s:%(name)s:%(message)s',
    datefmt=None,
    reset=True,
    log_colors={
        'DEBUG':    'cyan',
        'INFO':     'green',
        'WARNING':  'yellow',
        'ERROR':    'red',
        'CRITICAL': 'red,bg_white',
    },
    secondary_log_colors={},
    style='%'
)

# 将 ColorFormatter 添加到 StreamHandler
handler.setFormatter(formatter)

# 将 StreamHandler 添加到 logger
logger.addHandler(handler)

# 输出日志消息
logger.debug('Debug message')
logger.info('Info message')
logger.warning('Warning message')
logger.error('Error message')
logger.critical('Critical message')

在上面的示例中,我们首先创建了一个 logger 对象并设置了日志级别为 DEBUG。然后,我们创建一个 StreamHandler 对象并设置其日志级别为 DEBUG。接下来,我们创建了一个 ColorFormatter 对象,并设置了日志级别及颜色。最后,我们将 ColorFormatter 添加到 StreamHandler,并将 StreamHandler 添加到 logger

当我们调用 logger 的不同级别的日志方法时,会自动根据设置的颜色输出对应级别的日志消息。

上述代码将输出如下日志:

DEBUG:example:Debug message
INFO:example:Info message
WARNING:example:Warning message
ERROR:example:Error message
CRITICAL:example:Critical message

注意:这些日志消息将根据其级别自动着色。在这个例子中,DEBUG 级别的消息将显示为青色,INFO 级别的消息将显示为绿色,WARNING 级别的消息将显示为黄色,ERROR 和 CRITICAL 级别的消息将显示为红色。CRITICAL 级别的消息还将有一个白色的背景。

当然,你也可以根据自己的需求自定义颜色和日志格式。