Python3,好看的外(shen)表(cai)千篇一律,炫彩的日志万里挑一。

2023-11-15

1、引言

小屌丝:鱼哥, 我今天被炫到了。
小鱼:怎么了,你还能被旋到了?
小屌丝对啊, 被炫到了,很不是滋味。
小鱼:不应该啊, 你这酒量,不都是 “青岛不倒我不倒,雪花不飘我不飘,半斤不是酒,一斤扶墙走…”,
小屌丝:打住,合着你说的是喝酒啊?
小鱼:嗯?? 那你说的不是喝酒?
小屌丝:我说的是被技能给炫到了
小鱼:哦,那不足为奇~
小屌丝:… 至少我也是新生代农民工…
小鱼:哦,那你自己搞一个更炫的, 闪亮他们的眼…
小屌丝:我要是能搞得出啦, 就不在这跟你唠嗑了。
小鱼:那是啥嘞?
小屌丝:就是调试的控制台,输出的日志是彩色的。
小鱼:就这???
在这里插入图片描述

小屌丝:对啊,就这。
小鱼:唉,现在是不是午饭时间了。
小屌丝:行, 整完了,咱俩去旋一个。
小鱼:你看看, 这刚喝完,又的去旋,总这样,身体也吃不消啊。
在这里插入图片描述

小屌丝: 好,整…
小鱼:好嘞。 那咱十分钟后,老地方见。

2、代码实战

2.1 库介绍

关于coloredlogs,这里,我直接引用官网的内容:

The coloredlogs package enables colored terminal output for Python’s logging module.
The ColoredFormatter class inherits from logging.
Formatter and uses ANSI escape sequences to render your logging messages in color.
It uses only standard colors so it should work on any UNIX terminal.
It’s currently tested on Python 2.7, 3.5+ and PyPy (2 and 3).

这里,我用汉语简单概括的唠叨一下(是时候展示我的英文水平了):

coloredlogs 包为 Python 的日志记录模块启用彩色终端输出。
类继承自日志记录。格式化程序并使用 ANSI 转义序列以彩色呈现日志记录消息。
它仅使用 标准颜色,因此它应该适用于任何UNIX终端。
可以在python2.7 和3.5及更高版本使用。

所以, 是不是觉得,很easy呢。
如果掌握了此方法, 以后在调试日志的时候, 根据颜色值,来判断错误的等级,是不是更高大上呢。

话不多说,直接安装,咱来实战。

2.2 库安装

涉及到第三方库,肯定就需要安装
老规矩,pip 安装

pip install coloredlogs

然后就是等待着安装。

其它安装方式,直接看这两篇:

安装完成,就是这个样子:
在这里插入图片描述

2.3 代码示例

2.3.1 demo

我先整一个简单的demo,来看看效果

# -*- coding:utf-8 -*-
# @Time   : 2023-02-22
# @Author : Carl_DJ

import coloredlogs, logging

# 创建logger.
logger = logging.getLogger(__name__)

#设置等级为 DEBUG
coloredlogs.install(level='DEBUG')
coloredlogs.install(level='DEBUG', logger=logger)

# 输出
logger.debug("this is a debugging message")
logger.info("this is an informational message")
logger.warning("this is a warning message")
logger.error("this is an error message")
logger.critical("this is a critical message")

结果展示

在这里插入图片描述

2.3.2 实战

有了上面的简单demo, 我们给封装一下,便于后期在框架中直接被调用。

代码示例

# -*- coding:utf-8 -*-
# @Time   : 2023-02-22
# @Author : Carl_DJ

'''
实现功能:
    输出的日志,为彩色
'''

import logging
import coloredlogs
import sys


#logger 配置
logging.basicConfig()
logger = logging.getLogger(name='logger')

#logger安装到coloredlogs
coloredlogs.install(logger=logger)
#保证coloredlogs 不会将日志事件传递给跟logger,防止重复记录每个事件
logger.propagate = False

#输入logger字体颜色 配置
coloredFormatter = coloredlogs.ColoredFormatter(
    fmt='[%(name)s] %(asctime)s %(funcName)s %(lineno)-3d  %(message)s',
    #定义logger不同级别,输出的字体颜色
    level_styles=dict(
        debug = dict(color = 'yellow'),
        info = dict(color = 'green'),
        warning = dict(color = 'blue',bright = True),
        error = dict(color = 'red',bold = True,bright = True),
        critical = dict(color = 'black',bold=True,background = 'cyan'),
    ),
    field_styles=dict(
        name = dict(color = 'white'),
        asctime = dict(color = 'white'),
        funcName = dict(color = 'white'),
        lineno = dict(color = 'white'),
    )
)


#配置控制台输出,这是日志常规写法, 不做过多讲解
ch = logging.StreamHandler(stream=sys.stdout)
ch.setFormatter(fmt = coloredFormatter)
logger.addHandler(hdlr=ch)
#设置输出日志的等级
logger.setLevel(level=logging.INFO)

#设置输出文案内容
logger.debug(msg = "logger.debug test!")
logger.info(msg = "logger.info test!")
logger.warning(msg = "logger.warning test!")
logger.error(msg = "logger.error test!")
logger.critical(msg = "logger.critical test!")

结果展示

在这里插入图片描述

3、总结

看到这里, 今天的分享,就差不多该结束了。
关于coloredlogs的日常使用,掌握这篇就差不多了。
其实,在平时的工作中,并没有太多的时间去搞这么花里胡哨的,
但是,既然有这个库,那我们就多掌握一些。

好了,也不啰嗦了, 再唠叨,小屌丝也该着急了。

我是小鱼

  • CSDN 博客专家
  • 阿里云 专家博主
  • 51CTO 博客专家
  • 51认证讲师
  • 金牌面试官&面试培训师

关注,带你学习更多更有趣的Python知识。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3,好看的外(shen)表(cai)千篇一律,炫彩的日志万里挑一。 的相关文章

随机推荐

  • STM32外设系列—红外遥控

    文章目录 一 红外遥控简介 二 红外遥控的原理 三 二进制脉冲编码 3 1 NEC码的位定义 3 2 NEC遥控指令的数据格式 四 红外遥控程序设计思路 五 红外遥控程序设计 5 1 红外遥控初始化程序 5 2 记录高电平持续时间函数 5
  • php爬虫教程(二)数据请求分析

    可以看到这个请求返回的就是整个页面的html 如果我们需要这里的某一个数据就可以通过正则匹配的方式匹配出来
  • Pytorch环境配置|m1 |macbookpro

    参考github上大大们的回答 链接在此 如果我有些不详细的点请自行查阅 菜鸟一枚 如果遇到问题可留言讨论 一起探索 有些复杂问题我也不会 见谅 1 安装miniforge3 我是直接下载的标红的 2 进入终端 command 空格 焦点搜
  • jQuery获取链接参数

    公司前端页面 之前公司前端竟然是用split函数分割链接来获取参数 真的无语了 这完全是没理解链接是干嘛的呀 搜了一个用正则匹配获取参数的方法 上代码 获取url中的参数 function getUrlParam name var reg
  • 使用代理重加密+PlatONE,来保证数据可信、安全地共享

    在制造 医药等行业中 有着大量沉睡的数据 利用这些数据 将有潜力推动技术创新或解密生命科学 但同时 这些数据中涉及商业机密和用户隐私保护 在不可信环境下实现安全的数据共享一直是一个难题 传统中心化方案存在数据容易被泄露 数据容易被篡改 数据
  • 1] python 爬取微信好友个性签名,生成词云

    在Anaconda下完成 参考https blog csdn net zhonglixianyun article details 78229782 结果图 1 需要的库 numpy os itchat wordcloud jieba 1
  • VRRP协议的作用

    文章目录 一 VRRP概述 1 1 VRRP概述 1 2 应用 1 3VRP工作原理 1 4选举依据 二 VRRP术语 2 1虚拟路由器 三 虚拟MAC地址 3 1虚拟MAC地址 3 2选举出master back
  • react+ts+vite+router6+antd 保姆级搭建

    一 项目搭建 采用vite方式 根据选择 react ts pnpm create vite 1 1 修改初始结构 删除多余文件 1 2 修改vite config配置文件 配置别名 vite config import defineCon
  • 大学生最好用搜题的APP,个人开发的,吊打一切搜题软件

    吊打市面大学搜题app 不好用直接举报我 谢谢 软件名称 火星搜题 软件版本 1 2 软件大小 2 5m 使用平台 安卓 是否root 免root 测试机型 小米11 软件说明 是市面让你感到体验的免费搜题软件 3000w道题库搜索 大学的
  • 消息耦合还是接口耦合

    最近公司准备开发一个新产品 需要重新设计一套新的框架 但是就这框架中各模块的通信方式 大家产生了争论 主要集中在各模块的交互方式是消息耦合还是接口耦合 需求大概这样 我们需要封装一套客户端SDK 暴露一系列API给外部用 而这套SDK内部会
  • Java基础知识查阅表(三)[各种API、反射、文件类、集合接口、范型、IO流、类加载]

    文章目录 String类 String的方法 StringBuffer类 StringBuffer的方法 为什么StringBuffer比String拼接快 StringBuilder类 Scanner类 Scanner类的方法 Array
  • MySQL每个用户只对自己的记录有select权限(超详细)

    MySQL每个用户只对自己的记录有select权限 原题再现 1 运行环境 2 创建习题中涉及到的用户 3 创建测试所需的数据库和表 4 向职工表中插入测试数据 5 创建视图 这里划重点 6 将视图的select权限授予给每个用户 7 权限
  • 毕业设计-基于机器视觉的电线颜色识别系统软件- OpenCV

    目录 前言 课题背景和意义 实现技术思路 一 图像预处理 三 电线颜色特征提取方法的研究 四 基于 神经网络的颜色识别算法实现 实现效果图样例 最 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边
  • 关于芯片功耗的那些事(十九)

    续前一期 聊聊EM 的问题 当工艺在110nm及以下 由于metal 的最小线宽越来越窄 加之更高的device 电流和on die 的温度越来高 互连线的可靠性问题 互连线的EM问题越来越引起重视 电迁移的问题 可能导致金属线的要么变窄
  • 阿里天池—2022江苏气象预测AI算法挑战赛

    文章目录 摘要 一 数据分析 二 MAE简介 三 Transformer简介 四 模型搭建 还未写 摘要 This is a meteorological forecasting competition being held by Ali
  • 超融合服务器品牌型号,蓝盾发布云平台!强势加入云计算IT行列

    近年来 云计算逐渐与各行各业深度融合 带来诸多颠覆式创新 凸显出巨大的应用价值和发展前景 蓝盾股份作为信息安全行业领军企业 强势发布蓝盾云平台 成为云计算技术领域不容忽视的推动力量 一 产品简介 蓝盾云平台是满足国家等保规范 CSA云计算关
  • golang http请求如何设置代理

    go访问google的一些api的时候可能访问不到 可以给http设置走代理 u url Parse htttp 127 0 0 1 7890 t http Transport MaxIdleConns 10 MaxConnsPerHost
  • 对Redux中间件的理解?常用的中间件有哪些?实现原理?

    一 是什么 中间件 Middleware 是介于应用系统和系统软件之间的一类软件 它使用系统软件所提供的基础服务 功能 衔接网络上应用系统的各个部分或不同的应用 能够达到资源共享 功能共享的目的 二 常用的中间件 有很多redux中间件 如
  • 第4章 点云的滤波与分类 4.1点云数据的过滤

    C4 Filtering and Classification of Point Clouds 第4章 点云的滤波与分类 05 25 06 01点云数据的过滤 4 1Filtering of point cloud data 4 1 1课堂
  • Python3,好看的外(shen)表(cai)千篇一律,炫彩的日志万里挑一。

    炫彩日志输出 1 引言 2 代码实战 2 1 库介绍 2 2 库安装 2 3 代码示例 2 3 1 demo 2 3 2 实战 3 总结 1 引言 小屌丝 鱼哥 我今天被炫到了 小鱼 怎么了 你还能被旋到了 小屌丝对啊 被炫到了 很不是滋味