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

news/2024/10/30 13:34:33/

炫彩日志输出

  • 1、引言
  • 2、代码实战
    • 2.1 库介绍
    • 2.2 库安装
    • 2.3 代码示例
      • 2.3.1 demo
      • 2.3.2 实战
  • 3、总结

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

然后就是等待着安装。

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

  • Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!
  • Python3:我低调的只用一行代码,就导入Python所有库!

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

2.3 代码示例

2.3.1 demo

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

# -*- coding:utf-8 -*-
# @Time   : 2023-02-22
# @Author : Carl_DJimport 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知识。


http://www.ppmy.cn/news/29878.html

相关文章

Cadence Allegro 导出Bill of Material Report详解

⏪《上一篇》   🏡《总目录》   ⏩《下一篇》 目录 1,概述2,Bill of Material Report作用3,Bill of Material Report示例4,Bill of Material Report导出方法4.1,方法14.2,方法2B站关注“硬小二”浏览更多演示视频

首发,pm3包,一个用于多组(3组)倾向评分匹配的R包

目前,本人写的第二个R包pm3包已经正式在CRAN上线,用于3组倾向评分匹配,只能3组不能多也不能少。 可以使用以下代码安装 install.packages("pm3")什么是倾向性评分匹配?倾向评分匹配(Propensity Score Match…

Python 元类编程实现一个简单的 ORM

概述 什么是ORM?    ORM全称“Object Relational Mapping”,即对象-关系映射,就是把关系数据库的一行映射为一个对象,也就是一个类对应一个表,这样,写代码更简单,不用直接操作SQL语句。 现在我们就要实…

React(三):脚手架、组件化、生命周期、父子组件通信、插槽、Context

React(三)一、脚手架安装和创建1.安装脚手架2.创建脚手架3.看看脚手架目录4.运行脚手架二、脚手架下从0开始写代码三、组件化1.类组件2.函数组件四、React的生命周期1.认识生命周期2.图解生命周期(1)Constructor(2&…

python的 ping 网络状态监测方法(含多IP)

ping 基本概念 ping (Packet Internet Groper)是一种因特网包探索器,用于测试网络连接量的程序。Ping是工作在 TCP/IP网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Messag…

simulink PID控制

系列文章目录 文章目录系列文章目录前言一、非线性系统线性化原理二、反馈控制开环控制反馈or闭环控制PID ControllerPID微调案例总结前言 将非线性系统近似线性化PIDblock与微调 提示:以下是本篇文章正文内容,下面案例可供参考 一、非线性系统线性化 …

Linux操作系统学习(进程替换)

文章目录进程替换进程替换是什么?替换的方法进程替换简易shell模拟进程替换 进程替换是什么? 如下图所示: ​ 进程替换就是,把进程B的代码和数据,替换正在执行的进程A的代码和数据在内存中的位置(若代码…

Rockchip Android13 GKI开发指南

Rockchip Android13 GKI开发指南 文章目录Rockchip Android13 GKI开发指南GKI介绍Google upstream kernel下载及编译Rockchip SDK中GKI相关目录介绍Rockchip GKI编译代码修改编译固件烧写KO编译及修改添加新的模块驱动的方法调试ko方法开机log确认uboot阶段Android阶段KO加载KO…