python的logging组件的使用:基于colorama库新建一个控制台彩色日志打印格式类ColorFormater(开箱即用)

实现的效果:每一行都是一种颜色。如:

在这里插入图片描述
机制:核心还是类似于print()函数自定义内容颜色,就是开头加一些显示控制符,如:

logging.info("\033[显示方式;字体颜色;背景颜色m"+ "日志内容" +"\033[0m") 

显示方式可以选择的,如下表:

显示方式效果
0终端默认设置
1高亮显示
4使用下划线
5闪烁
7反白显示
8不可见

字体颜色、背景颜色如下表:

字体色背景色颜色描述
3040黑色
3141红色
3242绿色
3343黃色
3444蓝色
3545紫红色
3646青蓝色
3747白色

但是记这些数字还是比较有难度的,所幸,python有个colorama库可以快速实现,于是基于该库,创建了一个coloredFormatter新类,只要给handle的formatter制定为新建的类,其余的使用方法与原生的logging模块无异。
下面是完整的代码,直接复制到脚本里就能使用:

import logging
import colorama
import time
from colorama import Fore, Style

# 初始化 Colorama 库
colorama.init()

# 自定义 Formatter 类
# 自定义 Formatter 类
class ColoredFormatter(logging.Formatter):
    # 设置不同级别日志对应的颜色
    COLOR_MAP = {
        logging.DEBUG: Style.DIM + Fore.WHITE,
        logging.INFO: Fore.GREEN,
        logging.WARNING: Fore.YELLOW,
        logging.ERROR: Fore.RED,
        logging.CRITICAL: Style.BRIGHT + Fore.RED,
    }
    converter = time.localtime
    def __init__(self, fmt=None, datefmt=None, style='%', validate=True):
        super().__init__(fmt,datefmt,style,validate)

    def format(self, record):
        # 获取日志对应的颜色

        log_color = ColoredFormatter.COLOR_MAP.get(record.levelno)
        super().format(record)
        msg = super().format(record)
        return log_color+msg


log_format=logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
color_log=ColoredFormatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
# 给logger新建另一个的处理程序,这个handler是循环日志文件,最大是5M,有5个文件,满了就覆写了

console_handler = logging.StreamHandler()
console_handler.setFormatter(color_log)
console_handler.setLevel(logging.DEBUG)

logger.addHandler(console_handler)
if __name__ == '__main__':
    logger.warning("haha")
    logger.error("error")
    logger.info("info")
    logger.debug("info")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月司

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值