当前位置: 首页 > 行情 >

环球速读:Printf的多功能打印(带颜色)

发布时间:2023-04-09 17:51:02 来源:哔哩哔哩

哈喽,伙计们!


(资料图片)

最近做了一些Linux应用开发方面的东西,感觉现在有点混乱,所以想将每个知识点模块化,并且能够搭建自己的API库,方便以后能够直接使用!

今天主要来讨论一下我们最常用的打印字符串,如果实现调试打印和颜色打印。

1、明确需求

Linux开发环境下,我们日常使用的打印字符串的主要需求可能有两种:

多级别打印:我们调试打印信息可以分为多个级别,全局设置打印级别,来实现打印的全局管理!

多颜色打印:不同的打印级别对应不同的打印色彩,方便快速吸引开发者的注意力,快速定位问题!

基于以上两个基本需求,我们来进行简单封装。

2、打印级别分类

打印级别参考内核的分类,设置级别如下:

3、打印级别控制

打印级别分类后,我们定义全局变量,来全局控制打印级别。

如果需要全局调整打印级别,我们可以调用Set_Log_Lever的接口,实现打印级别的适时调整。

4、打印信息添加

在输出我们正常打印信息之前,我们也需要添加一些时间信息,打印级别信息等。

通过以上代码,将时间和打印级别信息都添加到字符串之前。

输出效果如下

5、颜色定义

颜色控制如何做?

很简单,在输出字符串前,符合特定的颜色控制格式,就可以更改打印颜色了。

控制命令以\033[开头,以m结尾,而中间则是属性码,属性代码之间使用;分隔,如\033[1;34;42m,最后以默认颜色\033[0m结尾,以避免影响后面正常打印!

显示方式

意义显示方式默认0高亮显示1下划线4闪烁5反白显示7不可见8

前景颜色和背景颜色

颜色前景色背景色黑色3040红色3141绿色3242黄色3343蓝色3444紫红色3545青蓝色3646白色3747

没有设置的话就是默认

颜色定义

下方定义一些常用颜色,方便打印调用。

6、颜色控制

定义完各类颜色后,我们要做的就是对于不同级别的打印,选择不同的颜色!

7、颜色打印

在选择对应颜色之后,我们要做的就是将这些颜色信息,放到正常打印信息的前方。

可以通过字符串拼接的函数实现。

这里的颜色打印,说白了就是在我们要打印的字符串前方,加入打印颜色的信息即可,打印字符串结束之后,要加上\033[0m,来恢复默认!

8、打印预览

设置完成之后,我们看一下打印预览:

9、Demo获取

多级别彩色打印这个功能,已经封装成了一个API,我们直接获取源码,将.c.h文件加入到自己工程即可使用!

源码获取放到评论区

推荐阅读