您当前的位置:首页 > 计算机 > 编程开发 > Python

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

时间:03-19来源:作者:点击数:

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的日常使用,掌握这篇就差不多了。

其实,在平时的工作中,并没有太多的时间去搞这么花里胡哨的,

但是,既然有这个库,那我们就多掌握一些。

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

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门