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

news2024/11/25 13:49:01

炫彩日志输出

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/385238.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python SDK打包

什么是SDK 先放一段专业性的文字来解释: SDK即“软体开发工具包”,一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。通俗点是指由第三方服务商提供的实现软件产品某项功能的工具包。 开发者不…

【PyTorch】教程:torch.nn.ELU

torch.nn.ELU CLASS torch.nn.ELU(alpha1.0, inplaceFalse) paper: Fast and Accurate Deep Network Learning by Exponential Linear Units (ELUs). 参数 alpha ([float]) – α\alphaα 默认为1.0inplace ([bool] ) – 内部做, 默认为 False ELU 定义 ELU(x){x,if x>0α…

与流程挖掘布道者熵评科技孙一鸣博士共话流程挖掘市场的起源与前景 | 爱分析访谈

调研:李进宝 陈元新 撰写:李进宝 陈元新 随着数字化转型持续深入,国内企业流程挖掘需求初露端倪。流程挖掘是指通过采集和分析企业数据,以可视化流程图还原企业实际发生的业务流程,进而评估流程运行状况、诊断流程运…

Spring 6 and JUnit 5 组合

Spring 6 and JUnit 5 组合 Spring 6 and JUnit 5 只需引入相关的包&#xff0c;不过偶尔可能会出现 no tests were found&#xff0c;最后有解决方案。 引入相关依赖包 <dependencies><dependency><groupId>jakarta.annotation</groupId><artif…

边界无限入选首届“网络安全高成长性企业”并荣获“勇创之星”

近日&#xff0c;由工业和信息化部、四川省人民政府主办的“2023年中国网络和数据安全产业高峰论坛网络安全产融合作分论坛”在成都举行&#xff0c;论坛上公布了“2022年度网络安全高成长性企业”名单。云原生安全、应用安全“灵动智御”理念创领者北京边界无限科技有限公司&a…

密码算法(SM1、SM2、SM3、SM4、同态加密、密态计算、隐私计算和安全多方计算)

文章目录SM1 对称密码SM2 椭圆曲线公钥密码算法SM3 杂凑算法SM4 对称算法同态加密密态计算和隐私计算安全多方计算技术安全多方计算的应用场景对称加密算法非对称加密算法&#xff08;公钥加密&#xff09;参考文章SM1、SM2、SM3和SM4 为了保障商用密码的安全性&#xff0c;国家…

HTTP#1 请求数据格式和响应数据格式

一. 简介概念Hyper Text Transfer Protocol (HTTP), 超文本传输协议, 规定了浏览器和服务器之间数据传输的规则HTTP协议特点1.基于TCP协议:面向连接&#xff0c;安全2.基于请求-响应模型的:一次请求对应一次响应3. HTTP协议是无状态的协议: 对于事务处理没有记忆能力, 每次请求…

JAVA中公平锁和非公平锁有什么区别?

从公平的角度来说,Java 中的锁总共可分为两类:公平锁和非公平锁。但公平锁和非公平锁有哪些区别? 正文 公平锁:每个线程获取锁的顺序是按照线程访问锁的先后顺序获取的,最前面的线程总是最先获取到锁。非公平锁:每个线程获取锁的顺序是随机的,并不会遵循先来先得的规则…

深眸科技|机器视觉提升制造性能,焕发传统企业智造新活力!

随着机器视觉技术的成熟与发展&#xff0c;其在工业制造中得到越来越广泛的应用。机器视觉在工业制造领域的应用朝着智能识别、智能检测、智能测量以及智能互联的完整智能体系方向发展。此外&#xff0c;快速变化的市场需求&#xff0c;不断涌入行业的竞争对手&#xff0c;让传…

操作系统真相还原_第8章:内存管理系统

文章目录8.1 Makefile 简介makefile基本语法make参数伪目标自定义变量与系统变量隐含规则自动化变量与模式规则8.2 实现assert断言操作系统代码编译、链接并写入磁盘启动bochs执行物理内存使用情况8.3 实现字符串操作函数操作系统代码编译、链接并写入磁盘启动bochs执行物理内存…

C++基础(一)—— C++概述、C++对C的扩展(作用域、struct类型、引用、内联函数、函数默认参数、函数占位参数、函数重载)

1. C概述1.1 c简介“c”中的来自于c语言中的递增运算符&#xff0c;该运算符将变量加1。c起初也叫”c withclsss”.通过名称表明&#xff0c;c是对C的扩展&#xff0c;因此c是c语言的超集&#xff0c;这意味着任何有效的c程序都是有效的c程序。c程序可以使用已有的c程序库。为什…

Halcon数据结构

1.HTuple类型 1、既可以表示的类型有int&#xff0c;double、float、string&#xff0c;既可以表示单个值&#xff1b; 2、可以是容器&#xff1b; 3、可以是数组&#xff0c;数组遍历时需要有下标&#xff0c;如&#xff1a;变量名称[下标] 图像数据类型 Byte&#xff1a;8…

药房管理系统;药库管理系统

第一&#xff0c;主要功能&#xff1a;  本系统集日常销售、药品进销存、会员积分、GSP管理等药店所需的所有功能于一体&#xff0c;实现店铺管理的全部自动化。第二、新功能&#xff1a;  增加了“按功能查询药品”的功能&#xff0c;使软件用户可以根据客户的症状推荐合适…

【进阶】2、搭建K8s集群【v1.23】

[toc] 一、安装要求 在开始之前&#xff0c;部署Kubernetes集群机器需要满足以下几个条件&#xff1a; 一台或多台机器&#xff0c;操作系统 CentOS7.x-86_x64硬件配置&#xff1a;2GB或更多RAM&#xff0c;2个CPU或更多CPU&#xff0c;硬盘30GB或更多集群中所有机器之间网络…

编写SPI_Master驱动程序_老方法

编写SPI_Master驱动程序 文章目录编写SPI_Master驱动程序参考资料&#xff1a;一、 SPI驱动框架1.1 总体框架1.2 怎么编写SPI_Master驱动1.2.1 编写设备树1.2.2 编写驱动程序二、 编写程序2.1 数据传输流程2.2 写代码致谢参考资料&#xff1a; 内核头文件&#xff1a;include\…

数字IC手撕代码--联发科(总线访问仲裁)

题目描述当A、B两组的信号请求访问某个模块时&#xff0c;为了保证正确的访问&#xff0c;需要对这些信号进行仲裁。请用Verilog实现一个仲裁器&#xff0c;对两组请求信号进行仲后&#xff0c;要求&#xff1a;协议如图所示&#xff0c;请求方发送req&#xff08;request&…

数据推荐 | 人体行为识别数据集

人体行为识别任务旨在通过对人体姿态进行分析&#xff0c;识别出人体的具体动作&#xff0c;为人体行为预测、突发事件处理、智能健身、智能看护等领域提供技术支持。 图片 图片 人体行为识别数据标注方式 人体行为数据通用的标注方式包括人体关键点标注和动作标签标注&#…

Spring Boot 整合分布式缓存 Memcached

Memcached是一个开源、高性能&#xff0c;将数据分布于内存中并使用key-value存储结构的缓存系统。它通过在内存中缓存数据来减少向数据库的频繁访问连接的次数&#xff0c;可以提高动态、数据库驱动之类网站的运行速度。 Memcached在使用是比较简单的&#xff0c;在操作上基本…

经典面试题:“从输入URL到展示出页面“这个过程发生了什么?

目录 &#x1f433;今日良言:在逆境中善待自己 &#x1f407;一、输入网址(URL) &#x1f407;二、域名查询(DNS解析) &#x1f407;三、建立TCP连接 &#x1f407;四、发送HTTP/HTTPS请求 &#x1f407;五、服务器响应请求 &#x1f407;六、浏览器解析渲染页面 &…

Simple_SSTI_2

Simple_SSTI_2前言一、python类的内置属性二、解题步骤1.查看当前目录2. 打开flag文件得到flag前言 要想做到这个题&#xff0c;先要了解SSTI_2模板注入详解 一、python类的内置属性 先看如下一段代码&#xff1a; class Restaurant:"""类"""def…