炫彩日志输出

  • 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知识。

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

  1. SmallUI-小ui 前端ui组件库(好用的组件千篇一律,轻巧的组件万里挑一)

    Small-UI 官网:http://SmallUI.com 简介:好用的组件千篇一律,轻巧的组件万里挑一. [筹备开发中...]

  2. 好看的皮囊千篇一律,有趣的灵魂万里挑一

    1.谁都会老,也都会死掉,真心希望最后的一天,你能够拍着胸脯说:"我从未做过的事情,就是不做:我一直做的事情,就是我活着的意义!"

  3. 好看的皮囊千篇一律,有趣的书籍万里挑一,学习Java必读的两款书籍推荐

    今天给各位学习Java的小伙伴儿们推荐两本Java路线上必不可少的书籍,核心卷1和卷2,大家可根据自己的情况种草.正所谓,书多不压身. Java核心技术卷1 Java 诞生 27 年来,这本享誉全球的 ...

  4. 普通的加载千篇一律,有趣的 loading 万里挑一

    前言 在网络速度较慢的场景,一个有趣的加载会提高用户的耐心和对 App 的好感,有些 loading 动效甚至会让用户有想弄清楚整个动效过程到底是怎么样的冲动.然而,大部分的 App的 loading ...

  5. oracle查找外键表

    select table_name from user_constraints where r_constraint_name in (select constraint_name from user ...

  6. mysql添加数据不阻塞_主键表插入数据不提交,外键表插入数据被阻塞

    有客户和我说:他在含主外键的表中实验发现,在主表数据未提交,然后在外键表插入该数据数据时,出现外键表hang住现象.我开始以为是不同的会话,根据oracle数据库的一致性原则,应该新会话在外键表中不能 ...

  7. 【数据库】查询所有同学的学号、姓名、选课数、总成绩(左外连表查询)

    代码在下面 查询所有同学的学号.姓名.选课数.总成绩(左外连表查询) SELECT student.sno,student.sname,count(sc.cno)as 选课数, sum(score) ...

  8. sql 主键表与外键表的区分

    主键 表和外建表是相对来说的,简单的说就是一个表的 主键 是另外一张表的 外键 . 例如 class 班级表 主要字段如下: classId PRIMARY KEY( 主键 )班级ID classNa ...

  9. 数据库的主键表和外键表

    想写这个是因为自己刚好在尝试建一个数据库,而数据库的各个表之间的关系不是很清楚,没有形成一个整体的关系,所以就尝试着将数据库形成一个整理的关系表,我 敢说很多跟我一样的同学原来做课程设计,肯定就是随便 ...

最新文章

  1. JDK9新特性实战:简化流关闭新姿势。
  2. android 读取其他应用程序,android – 在另一个应用程序中请求我自己的ContentProvider的读取权限...
  3. learn-the-architecture系列
  4. 二十三、Python队列实现多线程(下篇)
  5. WildFly上具有AngularJS的Java EE 7和Java WebSocket API(JSR 356)
  6. 灯泡亮度控制单片机_海淀区投影机灯泡
  7. Linux kali2021 密码学PBC库安装
  8. nginx-rtmp协议解读
  9. 第二届亚太应用经济学会博硕士论文研讨会长沙落幕
  10. 算法:什么是棒球游戏问题?
  11. 供应链金融与区块链02——论文阅读
  12. 宝塔软件商店安装不了php_宝塔安装php不显示
  13. 学计算机的考研254分,2011年考研:历史学专业课254分经验谈
  14. Python实战项目2——自动获取酷狗音乐工具
  15. 【学习笔记】Python编程,从入门到实践(自学python心路历程及学习笔记整理)
  16. mfc 中文乱码转换为正常中文_MFC下遇到的字符集和中文乱码问题
  17. AtCoder Regular Contest 154 题解
  18. 分析system_call中断处理过程
  19. 学习游戏原画设计需要多长时间?
  20. Spark-Excel算子

热门文章

  1. Linux伪分布式安装Hadoop
  2. 浏览器兼容模式中文乱码
  3. 电脑系统盘数据迁移/数据传输方法
  4. react hooks之useCallback
  5. 华为WATCH D还有哪些值得一提的功能
  6. 解决vivado2018.3 分析综合都没问题,但是生成比特流出错的问题
  7. 什么是数据结构以及数据结构的存储方式、逻辑结构和存储结构的关系、数据结构的运算、逻辑结构的四种基本类型
  8. 【AI】AI入门之Nvidia Jetson平台(一)- Jetson平台介绍
  9. Ubuntu安装中文语言和拼音输入法
  10. C++中常见的几种输入字符串的方法