單片機(jī)項目在很多時候都需要調(diào)試,通過日志診斷bug是常見的一種調(diào)試方法。
下面就給大家分享一個開源的適合單片機(jī)的輕量級日志庫,只有l(wèi)og.c 和 log.h 兩個文件,使用非常方便。
用法
這個日志庫的使用比較簡單,新手完全可以勝任。
1、概述
在你的項目中添加log.c 和 log.h 文件。
提供 6 用于日志記錄的類似函數(shù)的宏:
log_trace(const char *fmt, ...); log_debug(const char *fmt, ...); log_info(const char *fmt, ...); log_warn(const char *fmt, ...); log_error(const char *fmt, ...); log_fatal(const char *fmt, ...);每個函數(shù)都采用一個 printf 格式字符串,后跟其他參數(shù):
log_trace("Hello %s", "world")生成一行給定格式的行打印到 stderr:
2026TRACEsrc/main.cHelloworld2、接口描述
log_set_quiet(bool enable)
可以通過傳遞給函數(shù)來啟用Quiet安靜模式(不輸入日志)。
啟用此模式時,庫不會向輸出任何內(nèi)容,但是將繼續(xù)寫入文件和回調(diào)(如果已設(shè)置)。truelog_set_quiet()stderr
log_set_level(int level)
可以使用該函數(shù)設(shè)置當(dāng)前日志記錄級別。不會將低于給定級別的所有日志寫入 。默認(rèn)情況下級別為LOG_TRACE, ,即不忽略任何內(nèi)容。log_set_level()stderrLOG_TRACE
log_add_fp(FILE *fp, int level)
可以將一個或多個將寫入日志的文件指針提供給庫,通過使用函數(shù)。寫入文件的數(shù)據(jù)輸出采用以下格式:log_add_fp()
2047-03-11 2026 TRACE src/main.c Hello world
給定值以下的任何消息都將被忽略。如果庫無法添加文件指針返回小于零的值。
log_add_callback(log_LogFn fn, void *udata, int level)
使用日志數(shù)據(jù)調(diào)用的一個或多個回調(diào)函數(shù)可以是 通過使用函數(shù)提供給庫。回調(diào) 函數(shù)傳遞一個包含數(shù)字、、字符串、printf va_list和給定 .log_add_callback()log_Eventlinefilenamefmtvaleveludata
log_set_lock(log_LockFn fn, void *udata)
如果日志將從多個線程寫入,則可以設(shè)置鎖定函數(shù)。如果應(yīng)該獲取鎖,或者是否應(yīng)該釋放鎖并給定值,則該函數(shù)將傳遞布爾值。truefalseudata
const char* log_level_string(int level)
以字符串形式返回給定日志級別的名稱。
LOG_USE_COLOR
如果使用-DLOG_USE_COLOR編譯庫,則在打印時將使用ANSI轉(zhuǎn)義碼。
開源協(xié)議
該庫為免費軟件庫,但你需要對應(yīng)的 MIT 許可證條款。
開源地址:
https://github.com/rxi/log.c
審核編輯:湯梓紅
-
單片機(jī)
+關(guān)注
關(guān)注
6043文章
44623瀏覽量
638782 -
調(diào)試
+關(guān)注
關(guān)注
7文章
589瀏覽量
34075 -
文件
+關(guān)注
關(guān)注
1文章
571瀏覽量
24826 -
開源
+關(guān)注
關(guān)注
3文章
3409瀏覽量
42723
原文標(biāo)題:分享一個適合單片機(jī)的輕量級日志庫
文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
國產(chǎn)芯上運行TinyMaxi輕量級的神經(jīng)網(wǎng)絡(luò)推理庫-米爾基于芯馳D9國產(chǎn)商顯板
![國產(chǎn)芯上運行TinyMaxi<b class='flag-5'>輕量級</b>的神經(jīng)網(wǎng)絡(luò)推理<b class='flag-5'>庫</b>-米爾基于芯馳D9國產(chǎn)商顯板](https://file.elecfans.com/web2/M00/08/64/pYYBAGDwFEGADIPWAAFlJOlmLxg664.jpg)
輕量級的ui框架如何去制作
單片機(jī)對日志系統(tǒng)的設(shè)計
![<b class='flag-5'>單片機(jī)</b>對<b class='flag-5'>日志</b>系統(tǒng)的設(shè)計](https://file.elecfans.com/web1/M00/8D/36/o4YBAFyjANyACd2fAAEciuOXVvk715.png)
原創(chuàng)分享:自制輕量級單片機(jī)UI框架
![原創(chuàng)分享:自制<b class='flag-5'>輕量級</b><b class='flag-5'>單片機(jī)</b>UI框架](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
推薦3個非常不錯的開源日志庫
一款適合初學(xué)者超輕量級C語言網(wǎng)絡(luò)庫—Dyad
![<b class='flag-5'>一</b>款<b class='flag-5'>適合</b>初學(xué)者超<b class='flag-5'>輕量級</b>C語言網(wǎng)絡(luò)<b class='flag-5'>庫</b>—Dyad](https://file.elecfans.com/web2/M00/6F/87/pYYBAGNDvNaAAHdDAAAei30q9Qg353.jpg)
TinyDB輕量級數(shù)據(jù)庫有哪些特點呢
PSoC NeoPixel Easy輕量級庫
![PSoC NeoPixel Easy<b class='flag-5'>輕量級</b><b class='flag-5'>庫</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
一個純Python編寫的輕量級數(shù)據(jù)庫
測評分享 | 如何在先楫HPM6750上運行輕量級AI推理框架TinyMaix
![測評分享 | 如何在先楫HPM6750上運行<b class='flag-5'>輕量級</b>AI推理框架TinyMaix](https://file.elecfans.com/web2/M00/37/D7/pYYBAGI9l9uAOwALAAAmFmqVYdg094.png)
評論