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

为Python的日志输出添加漂亮的颜色和样式

发布时间:2023-12-15 09:39:25

在Python中,可以使用logging模块来实现日志输出。日志可用于调试代码、记录应用程序的状态和行为,以及追踪错误。为了让日志输出更加美观,可以使用第三方库colorlog来添加漂亮的颜色和样式。

首先,需要安装colorlog库:

$ pip install colorlog

下面是一个使用colorlog库的示例代码:

import logging
import colorlog

# 创建一个ColorLog的formatter
formatter = colorlog.ColoredFormatter(
    "%(log_color)s%(asctime)s %(levelname)s %(message)s",
    datefmt="%Y-%m-%d %H:%M:%S"
)

# 创建一个ColorLog的handler
handler = colorlog.StreamHandler()

# 设置handler的formatter
handler.setFormatter(formatter)

# 创建一个logger,并将handler添加到logger中
logger = colorlog.getLogger()
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)

# 使用logger输出日志
logger.debug("这是一条debug级别的日志")
logger.info("这是一条info级别的日志")
logger.warning("这是一条warning级别的日志")
logger.error("这是一条error级别的日志")
logger.critical("这是一条critical级别的日志")

运行上述代码,输出的日志将带有不同颜色和样式:

![colorlog_example](https://user-images.githubusercontent.com/6561117/61587129-22cf6a00-abd1-11e9-87a7-bd4be73c60e9.png)

可以看到,不同级别的日志使用不同的颜色进行了区分。Colorlog库默认将DEBUG级别设置为白色,INFO级别设置为绿色,WARNING级别设置为黄色,ERROR级别设置为红色,CRITICAL级别设置为红底白字。

Colorlog库还支持自定义颜色和样式。可以通过在formatter中使用特殊的格式化标记来自定义日志的颜色和样式。

以下是一些常用的颜色和样式的格式化标记:

- {log_color}: 日志的颜色

- {levelname}: 日志级别名称

- {asctime}: 日志的时间

- {message}: 日志的内容

以下是一些常用的颜色标记:

- {black}

- {red}

- {green}

- {yellow}

- {blue}

- {purple}

- {cyan}

- {white}

以下是一些常用的样式标记:

- {bold}

- {thin}

- {underline}

- {blink}

- {reverse}

下面是一个自定义颜色和样式的示例代码:

import logging
import colorlog

# 创建一个ColorLog的formatter,自定义颜色和样式
formatter = colorlog.ColoredFormatter(
    "{cyan}{bold}%(asctime)s %(levelname)s{reset} %(message)s",
    datefmt="%Y-%m-%d %H:%M:%S",
    reset=True,
    log_colors={
        'DEBUG': 'cyan',
        'INFO': 'green',
        'WARNING': 'yellow',
        'ERROR': 'red',
        'CRITICAL': 'red,bg_white',
    },
)

# 创建一个ColorLog的handler
handler = colorlog.StreamHandler()

# 设置handler的formatter
handler.setFormatter(formatter)

# 创建一个logger,并将handler添加到logger中
logger = colorlog.getLogger()
logger.addHandler(handler)
logger.setLevel(logging.DEBUG)

# 使用logger输出日志
logger.debug("这是一条debug级别的日志")
logger.info("这是一条info级别的日志")
logger.warning("这是一条warning级别的日志")
logger.error("这是一条error级别的日志")
logger.critical("这是一条critical级别的日志")

运行上述代码,输出的日志将使用自定义的颜色和样式:

![colorlog_custom_example](https://user-images.githubusercontent.com/6561117/61587134-25ca5a80-abd1-11e9-89f7-917f0eff9bb4.png)

以上就是为Python的日志输出添加漂亮的颜色和样式的方法和示例。使用colorlog库可以让日志输出更加清晰和可读,方便调试和追踪错误。