python输出彩色日志的实现

作者:

文章目录
  • **提升可读性:**错误(ERROR)用红色、警告(WARNING)用黄色,一眼就能定位问题。 **提高效率:**在终端中快速区分日志级别,减少阅读负担。 **增强体验:**开发阶段的控制台日志更友好,尤其适合本地调试。
  • 首先,确保安装以下两个包: pip install colorlog pyyaml colorlog:提供带颜色的日志格式化器 pyyaml:用于加载 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(“严重错误!系统即将崩溃!”)
  • 以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。 您可能感兴趣的文章: Python3如何日志同时输出到控制台和文件 Python如何将控制台输出另存为日志文件 Python3 Loguru输出日志工具的使用 python logging多进程多线程输出到同一个日志文件的实战案例 python 实现logging动态变更输出日志文件名 Python 如何限制输出日志的大小
  • 目录
    • 为什么需要彩色日志?
    • 所需依赖
    • 日志配置详解(YAML)
    • 加载配置并使用日志器
    • 运行效果
    • 总结

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

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

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

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

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

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

    pip install colorlog pyyaml
    
    • colorlog:提供带颜色的日志格式化器
    • pyyaml:用于加载 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("严重错误!系统即将崩溃!")
    

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。

    您可能感兴趣的文章:

    • Python3如何日志同时输出到控制台和文件
    • Python如何将控制台输出另存为日志文件
    • Python3 Loguru输出日志工具的使用
    • python logging多进程多线程输出到同一个日志文件的实战案例
    • python 实现logging动态变更输出日志文件名
    • Python 如何限制输出日志的大小

    站内搜索