国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

不會(huì)吧,你還在赤裸裸的使用Printf?

系統(tǒng) Linux
最近做了一些Linux應(yīng)用開發(fā)方面的東西,感覺現(xiàn)在有點(diǎn)混亂,所以想將每個(gè)知識點(diǎn)模塊化,并且能夠搭建自己的API庫,方便以后能夠直接使用!

哈嘍,伙計(jì)們!

最近做了一些Linux?應(yīng)用開發(fā)方面的東西,感覺現(xiàn)在有點(diǎn)混亂,所以想將每個(gè)知識點(diǎn)模塊化,并且能夠搭建自己的API庫,方便以后能夠直接使用!

今天主要來討論一下我們最常用的打印字符串,實(shí)現(xiàn)調(diào)試打印和顏色打印。

1、明確需求

在Linux開發(fā)環(huán)境下,我們?nèi)粘J褂玫拇蛴∽址闹饕枨罂赡苡袃煞N:

  • 多級別打印:我們調(diào)試打印信息可以分為多個(gè)級別,全局設(shè)置打印級別,來實(shí)現(xiàn)打印的全局管理!
  • 多顏色打印:不同的打印級別對應(yīng)不同的打印色彩,方便快速吸引開發(fā)者的注意力,快速定位問題!

基于以上兩個(gè)基本需求,我們來進(jìn)行簡單封裝。

2、打印級別分類

打印級別參考內(nèi)核的分類,設(shè)置級別如下:

typedefenum {
LOG_EMERG=0, /**< Emergency */
LOG_ALERT, /**< Alert */
LOG_CRIT, /**< Critical */
LOG_ERR, /**< Error */
LOG_WARNING, /**< Warning */
LOG_NOTICE, /**< Notice */
LOG_INFO, /**< Information */
LOG_DEBUG /**< Debug */
}GLOBAL_LOG_LEVEL;

3、打印級別控制

打印級別分類后,我們定義全局變量,來全局控制打印級別。

GLOBAL_LOG_LEVEL g_log_level = LOG_INFO;        //  default log level

/**
* @brief 設(shè)置LOG打印等級
*
* @param log_level
*/

void Set_Log_Lever(GLOBAL_LOG_LEVEL log_level){

g_log_level = log_level;

}

如果需要全局調(diào)整打印級別,我們可以調(diào)用Set_Log_Lever的接口,實(shí)現(xiàn)打印級別的適時(shí)調(diào)整。

4、打印信息添加

在輸出我們正常打印信息之前,我們也需要添加一些時(shí)間信息,打印級別信息等。

constchar global_log_level_string[8][10] = {"EMERG", "ALERT", "CRIT", "ERR", "WARNING", "NOTICE", "INFO", "DEBUG"};
staticchar str_tmp[512];

// 增加時(shí)間信息
time_t now;
time(&now);
strftime(str_tmp, sizeof(str_tmp), "[%Y-%m-%d %H:%M:%S ", localtime(&now));

//加入LOG后綴信息
strcat(str_tmp,global_log_level_string[level]);
strcat(str_tmp, "] ");

通過以上代碼,將時(shí)間和打印級別信息都添加到字符串之前。

輸出效果如下:

[2022-10-2109:13:54 INFO] log info output

 5、顏色定義

顏色控制如何做?

很簡單,在輸出字符串前,符合特定的顏色控制格式,就可以更改打印顏色了。

printf("\033[顯示方式;字背景顏色;字體顏色m…\033[0m")

控制命令以\033[?開頭,以m?結(jié)尾,而中間則是屬性碼,屬性代碼之間使用;?分隔,如\033[1;34;42m?,最后以默認(rèn)顏色\033[0m結(jié)尾,以避免影響后面正常打印!

顯示方式

意義

顯示方式

默認(rèn)

0

高亮顯示

1

下劃線

4

閃爍

5

反白顯示

7

不可見

8

 前景顏色和背景顏色

顏色

前景色

背景色

黑色

30

40

紅色

31

41

綠色

32

42

黃色

33

43

藍(lán)色

34

44

紫紅色

35

45

青藍(lán)色

36

46

白色

37

47

沒有設(shè)置的話就是默認(rèn)

顏色定義

下方定義一些常用顏色,方便打印調(diào)用。

#define LOG_CLRSTR_NONE         "\033[0m"               // 默認(rèn)顯示
#define LOG_CLRSTR_RED "\033[0;42;31m" // 綠紅色
#define LOG_CLRSTR_GREEN "\033[0;32m" // 綠色
#define LOG_CLRSTR_BLUE "\033[0;32;34m" // 藍(lán)色
#define LOG_CLRSTR_DARK_GRAY "\033[1;30m" // 灰色
#define LOG_CLRSTR_CYAN "\033[0;36m" // 青色
#define LOG_CLRSTR_PURPLE "\033[0;35m" // 紫色
#define LOG_CLRSTR_BROWN "\033[0;33m" // 棕色
#define LOG_CLRSTR_YELLOW "\033[5;42;33m" // 綠黃色
#define LOG_CLRSTR_WHITE "\033[1;37m" // 白色

6、顏色控制

定義完各類顏色后,我們要做的就是對于不同級別的打印,選擇不同的顏色!

//LOG類型判斷,選擇不同打印顏色
switch (level)
{
case LOG_EMERG:
log_color = LOG_CLRSTR_RED;
break;
case LOG_ALERT:
log_color = LOG_CLRSTR_BLUE;
break;
case LOG_CRIT:
log_color = LOG_CLRSTR_CYAN;
break;
case LOG_ERR:
log_color = LOG_CLRSTR_RED;
break;
case LOG_WARNING:
log_color = LOG_CLRSTR_PURPLE;
break;
case LOG_NOTICE:
log_color = LOG_CLRSTR_YELLOW;
break;
case LOG_INFO:
log_color = LOG_CLRSTR_DARK_GRAY;
break;
case LOG_DEBUG:
log_color = LOG_CLRSTR_BROWN;
break;
default:
log_color = LOG_CLRSTR_GREEN;
break;
}

 7、顏色打印

在選擇對應(yīng)顏色之后,我們要做的就是將這些顏色信息,放到正常打印信息的前方。

可以通過字符串拼接的函數(shù)實(shí)現(xiàn)。

//  重新設(shè)置標(biāo)準(zhǔn)輸出
sprintf(str_uart, "%s",log_color);
strcat(str_uart, str_tmp);

...

strcat(str_uart,LOG_CLRSTR_NONE);
strcat(str_uart, "\r\n");
printf("%s",str_uart);

這里的顏色打印,說白了就是在我們要打印的字符串前方,加入打印顏色的信息即可,打印字符串結(jié)束之后,要加上\033[0m,來恢復(fù)默認(rèn)!

8、打印預(yù)覽

設(shè)置完成之后,我們看一下打印預(yù)覽:

圖片

 

9、Demo獲取

多級別彩色打印這個(gè)功能,已經(jīng)封裝成了一個(gè)API?,我們直接獲取源碼,將.c和.h文件加入到自己工程即可使用!

責(zé)任編輯:武曉燕 來源: 嵌入式藝術(shù)
相關(guān)推薦

2021-08-04 08:31:10

MySQL數(shù)據(jù)庫日志

2021-12-06 17:44:56

MHAMySQL高可用

2025-02-19 12:40:33

JWT

2021-09-07 11:20:02

binlogMySQL數(shù)據(jù)庫

2009-07-19 16:08:18

2020-08-05 14:28:32

編程程序員代碼

2019-09-21 21:32:34

數(shù)據(jù)庫SQL分布式

2016-10-08 22:10:51

2022-10-26 08:16:58

jar包依賴關(guān)系Maven

2024-03-04 00:05:00

馬斯克AI

2021-07-18 22:47:08

大數(shù)據(jù)電商算法

2015-12-31 13:38:59

創(chuàng)新大公司

2025-11-26 01:33:00

C/C++內(nèi)存printf

2020-02-21 14:15:40

SimpleDateFJava多線程

2020-09-14 06:52:42

Java對象代碼

2021-11-26 10:43:35

程序員技能開發(fā)者

2010-08-03 10:38:16

2025-10-28 01:45:00

setTimeouAPI日志

2011-03-07 09:44:09

赤裸的密碼密碼

2022-01-25 12:41:31

ChromeResponse接口
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

国产欧美精品在线观看| 无码人妻少妇伦在线电影| 色天天久久综合婷婷女18| 亚洲japanese制服美女| 免播放器亚洲| 日本黄大片在线观看| 中文字幕欧美日韩一区| 青梅竹马是消防员在线| 56国语精品自产拍在线观看| 日韩精品免费观看视频| 国产成人精品一区| 久久精品人人| 亚洲成人av免费看| 欧美日韩1区2区| 国产精品白丝久久av网站| 成人综合网网址| 麻豆精品视频在线观看视频| 婷婷免费在线观看| 91精品国产综合久久小美女| 亚洲色图综合| 国产精品久久久久久久久久直播 | 2021年精品国产福利在线| 成人黄色午夜影院| 国产精品一区久久久久| 在线免费观看色| 日韩国产高清视频在线| 自拍偷拍欧美一区| 亚洲综合第一| 亚洲精品v日韩精品| 国产区在线看| 7777免费精品视频| 蜜桃视频一区二区三区| 日本高清网站| 日韩在线观看视频免费| 在线欧美不卡| 亚洲国产高清av| 日韩午夜激情av| 国内黄色精品| 国产人妻777人伦精品hd| 欧美日韩一区二区在线观看| 亚洲精品大全| 日韩av电影免费观看| 亚洲高清在线视频| 久久伊人影院| 午夜老司机精品| 在线区一区二视频| 日韩大尺度在线观看| 国产xxxx振车| 精品国产亚洲在线| 欧美午夜一区二区福利视频| 天天影视色香欲综合网天天录日日录| 日韩av在线免播放器| 中文字幕免费精品| 成人午夜影院| 欧美成人在线免费视频| 国产尤物一区二区在线| 黄色免费在线观看| 亚洲综合大片69999| 亚洲视频一区二区在线| 成人在线免费av| 一区二区精品免费视频| 欧美日韩精品免费观看视频| 日韩伦理一区| 国产黄色影视| 98精品国产高清在线xxxx天堂| aa级大片欧美| 深夜视频一区二区| japanese在线视频| 精品国产sm最大网站免费看| 亚洲免费网址| 欧美一级二级三级区| 成人动漫在线视频| 欧美亚洲综合久久| 欧美日韩午夜| 欧洲亚洲精品视频| 国产欧美精品在线| 午夜精品久久久久久久| 国产乱码精品一区二区亚洲| 亚洲成人福利在线观看| 久久最新资源网| 91蜜桃婷婷狠狠久久综合9色| 欧美日韩国产v| 欧美中日韩在线| 最新亚洲国产精品| 91麻豆视频网站| 亚洲免费一区三区| 大香一本蕉伊线亚洲网| 久久久欧美一区二区| 中文在线一区二区| 日韩美女毛片| 影音先锋在线影院| 亚洲www视频| 欧美日韩一区二区三区高清 | www国产精品| 蜜桃免费在线视频| 1769国内精品视频在线播放| 久久久久久一级片| 亚洲欧美日本国产| 加勒比日本影视| 国产suv精品一区二区| 午夜天堂影视香蕉久久| 亚洲精品国产首次亮相| av在线电影播放| 日韩成人av电影在线| 亚洲女人被黑人巨大进入| 成人av网站在线| jazzjazz国产精品麻豆| 人人在线97| 亚洲一区二区三区毛片| 91精品国产综合久久蜜臀| 日本麻豆一区二区三区视频| 欧美福利在线播放| 999精品网站| 国产国产精品人在线视| 色网综合在线观看| 日本系列欧美系列| 狂野欧美性猛交xxxx| 猫咪成人官网| 国产精品久久久久久久美男| 在线日韩av片| 国产一区二区三区不卡在线观看| 91精品一区| 欧美高潮视频| 日韩精品久久久毛片一区二区| 伊人伊成久久人综合网站| 国产精品久久久久毛片软件| 欧美在线首页| xxxxxx欧美| 成人福利网址| 国产偷久久久精品专区| 亚洲欧美一区二区激情| 国产精品久久夜| 国产一区视频在线观看免费| 超碰资源在线| 国产videos| 你懂的网址一区二区三区| 日韩在线视频免费观看高清中文| 亚洲精品你懂的| 日本免费在线视频不卡一不卡二| 亚洲成人偷拍| 欧洲美女少妇精品| youjizzxxxx18| 韩国成人一区| 欧美激情精品久久久久久变态 | 91在线国产观看| 欧美电影《睫毛膏》| 在线视频国产区| 99热.com| 亚洲精品影院| 欧美一区二区色| 亚洲成年人在线播放| 久久久久久久久伊人| 激情久久久久久| 清纯唯美激情亚洲| 黄网页在线观看| 亚洲一区在线不卡| 日韩在线国产| 国产精品wwww| 一区二区中文字幕| 欧美性生活影院| 日本一区二区三区视频视频| 一本色道久久综合亚洲精品高清 | 日本xxx免费| 成人欧美一区二区三区黑人| 永久免费看mv网站入口亚洲| 色婷婷av一区二区三区软件| 99精品视频一区| 一本色道久久综合亚洲精品高清 | 国产精品中文| 黄色在线观看网站| xxxx影院| 屁屁影院ccyy国产第一页| 成人在线国产精品| 欧美大胆在线视频| 亚洲成avwww人| 激情亚洲一区二区三区四区| 不卡高清视频专区| 久久一区国产| 91tv精品福利国产在线观看| 日韩视频在线直播| 新版的欧美在线视频| av影片在线看| 欧美最顶级a∨艳星| 欧美 激情 在线| 日本a级片在线观看| 精品在线视频一区二区三区| 97精品一区二区三区| 亚洲午夜精品久久久久久久久久久久 | 新版中文字幕在线资源| 亚洲国产精品久久久久爰色欲| 日韩一区免费观看| 国产精品乱子乱xxxx| 国产成人福利网站| 欧美成人免费在线观看| 亚洲精品日韩丝袜精品| 欧美一区日本一区韩国一区| 一本色道久久综合狠狠躁的推荐 | 成人av免费在线| 九一九一国产精品| 亚洲永久在线|