python输出彩色日志的实现

 更新时间:2026年01月17日 09:03:11   作者:t梧桐树t  
文章介绍了如何使用colorlog库为Python应用程序的日志添加颜色,从而提高日志的可读性、效率和用户体验,文章还详细说明了如何安装必要的依赖包,并提供了一个YAML格式的日志配置示例

在开发 Python 应用程序时,日志是调试、监控和追踪问题的重要工具。然而,面对大量黑白日志信息,我们常常难以快速识别关键内容。

幸运的是,借助 colorlog 这个第三方库,我们可以轻松为日志添加颜色,让不同级别的日志一目了然!

为什么需要彩色日志?

**提升可读性:**错误(ERROR)用红色、警告(WARNING)用黄色,一眼就能定位问题。

**提高效率:**在终端中快速区分日志级别,减少阅读负担。

**增强体验:**开发阶段的控制台日志更友好,尤其适合本地调试。

所需依赖

首先,确保安装以下两个包:

pip install colorlog pyyaml
  • colorlog:提供带颜色的日志格式化器
  • pyyaml:用于加载 YAML 格式的配置文件。

日志配置详解(YAML)

# 日志配置文件
# 配置日志版本、格式化器、处理器、日志记录器和根日志记录器
version: 1
disable_existing_loggers: false

# 格式化器配置
formatters:
  # 彩色格式化器配置
  colored:
    (): colorlog.ColoredFormatter
    format: "%(log_color)s%(asctime)s - %(name)s - %(levelname)s - %(message)s"
    log_colors:
      DEBUG: cyan
      INFO: green
      WARNING: yellow
      ERROR: red
      CRITICAL: red,bg_white

# 处理器配置
handlers:
  # 控制台处理器配置
  console:
    class: logging.StreamHandler
    level: DEBUG
    formatter: colored
    stream: ext://sys.stdout

# 日志记录器配置
loggers:
  # 测试日志记录器配置
  log_test:
    level: DEBUG
    handlers: [console]
    propagate: no

# 根日志记录器配置
root:
  level: INFO
  handlers: [console]

加载配置并使用日志器

import logging.config
import yaml

# 加载 YAML 配置
with open('logging.yml', 'r', encoding='utf-8') as f:
    config = yaml.safe_load(f.read())
    logging.config.dictConfig(config)

# 获取自定义日志器
logger = logging.getLogger('log_test')

# 测试不同级别的日志
logger.debug("这是一条调试信息")
logger.info("程序正常运行")
logger.warning("注意:这是一条警告")
logger.error("发生了一个错误")
logger.critical("严重错误!系统即将崩溃!")

运行效果

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 关于pycharm中pip版本10.0无法使用的解决办法

    关于pycharm中pip版本10.0无法使用的解决办法

    近期在利用 pycharm 安装第三方库时会提示 pip 不是最新版本, 因此对 pip 进行更新,但是生成最新版本之后, pip 中由于缺少 main 函数,导致在 pycharm 中无法自动安装第三方库。本文就介绍一下如何解决
    2019-10-10
  • 在Django中预防CSRF攻击的操作

    在Django中预防CSRF攻击的操作

    这篇文章主要介绍了在Django中预防CSRF攻击的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Python中过滤字符串列表的方法

    Python中过滤字符串列表的方法

    这篇文章主要介绍了Python中过滤字符串列表的方法,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-12-12
  • Python格式化输出--%s,%d,%f的代码解析

    Python格式化输出--%s,%d,%f的代码解析

    这篇文章主要介绍了Python格式化输出--%s,%d,%f的代码详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • 在python Numpy中求向量和矩阵的范数实例

    在python Numpy中求向量和矩阵的范数实例

    今天小编就为大家分享一篇在python Numpy中求向量和矩阵的范数实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • django多个APP的urls设置方法(views重复问题解决)

    django多个APP的urls设置方法(views重复问题解决)

    今天小编就为大家分享一篇django多个APP的urls设置方法(views重复问题解决),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Pytest mark使用实例及原理解析

    Pytest mark使用实例及原理解析

    这篇文章主要介绍了Pytest mark使用实例及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • python 解压pkl文件的方法

    python 解压pkl文件的方法

    今天小编就为大家分享一篇python 解压pkl文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • python判断计算机是否有网络连接的实例

    python判断计算机是否有网络连接的实例

    今天小编就为大家分享一篇python判断计算机是否有网络连接的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python不到50行代码完成了多张excel合并的实现示例

    python不到50行代码完成了多张excel合并的实现示例

    这篇文章主要介绍了python不到50行代码完成了多张excel合并的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05

最新评论