電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 52|回復(fù): 0
收起左側(cè)

分享一個(gè)適合單片機(jī)的輕量級(jí)日志庫(kù)

[復(fù)制鏈接]

300

主題

300

帖子

2202

積分

三級(jí)會(huì)員

Rank: 3Rank: 3

積分
2202
跳轉(zhuǎn)到指定樓層
樓主
關(guān)注+星標(biāo)公眾號(hào),不錯(cuò)過(guò)精彩內(nèi)容
來(lái)源 | Github
編排 | strongerHuang
單片機(jī)項(xiàng)目在很多時(shí)候都需要調(diào)試,通過(guò)日志診斷bug是常見(jiàn)的一種調(diào)試方法。
下面就給大家分享一個(gè)開源的適合單片機(jī)的輕量級(jí)日志庫(kù),只有l(wèi)og.c 和 log.h 兩個(gè)文件,使用非常方便。
開源地址:
https://github.com/rxi/log.c


用法
這個(gè)日志庫(kù)的使用比較簡(jiǎn)單,新手完全可以勝任。
1、概述在你的項(xiàng)目中添加 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, ...);
    每個(gè)函數(shù)都采用一個(gè) printf 格式字符串,后跟其他參數(shù):
  • log_trace("Hello %s", "world")
    生成一行給定格式的行打印到 stderr:
  • 20:18:26 TRACE src/main.c:11: Hello world
    2、接口描述
  • log_set_quiet(bool enable)可以通過(guò)傳遞給函數(shù)來(lái)啟用Quiet安靜模式(不輸入日志)。
    啟用此模式時(shí),庫(kù)不會(huì)向輸出任何內(nèi)容,但是將繼續(xù)寫入文件和回調(diào)(如果已設(shè)置)。truelog_set_quiet()stderr

  • log_set_level(int level)可以使用該函數(shù)設(shè)置當(dāng)前日志記錄級(jí)別。不會(huì)將低于給定級(jí)別的所有日志寫入 。默認(rèn)情況下級(jí)別為L(zhǎng)OG_TRACE, ,即不忽略任何內(nèi)容。log_set_level()stderrLOG_TRACE

  • log_add_fp(FILE *fp, int level)可以將一個(gè)或多個(gè)將寫入日志的文件指針提供給庫(kù),通過(guò)使用函數(shù)。寫入文件的數(shù)據(jù)輸出采用以下格式:log_add_fp()
  • 2047-03-11 20:18:26 TRACE src/main.c:11: Hello world
    給定值以下的任何消息都將被忽略。如果庫(kù)無(wú)法添加文件指針?lè)祷匦∮诹愕闹怠?br />
  • log_add_callback(log_LogFn fn, void *udata, int level)使用日志數(shù)據(jù)調(diào)用的一個(gè)或多個(gè)回調(diào)函數(shù)可以是 通過(guò)使用函數(shù)提供給庫(kù);卣{(diào) 函數(shù)傳遞一個(gè)包含數(shù)字、、字符串、printf va_list和給定 .log_add_callback()log_Eventlinefilenamefmtvaleveludata

  • log_set_lock(log_LockFn fn, void *udata)如果日志將從多個(gè)線程寫入,則可以設(shè)置鎖定函數(shù)。如果應(yīng)該獲取鎖,或者是否應(yīng)該釋放鎖并給定值,則該函數(shù)將傳遞布爾值。truefalseudata

  • const char* log_level_string(int level)以字符串形式返回給定日志級(jí)別的名稱。

    LOG_USE_COLOR
    如果使用-DLOG_USE_COLOR編譯庫(kù),則在打印時(shí)將使用ANSI轉(zhuǎn)義碼。
    開源協(xié)議
    該庫(kù)為免費(fèi)軟件庫(kù),但你需要對(duì)應(yīng)的 MIT 許可證條款。------------ END ------------

    ●專欄《嵌入式工具●專欄《嵌入式開發(fā)》●專欄《Keil教程》●嵌入式專欄精選教程
    關(guān)注公眾號(hào)回復(fù)“加群”按規(guī)則加入技術(shù)交流群,回復(fù)“1024”查看更多內(nèi)容。
    點(diǎn)擊“閱讀原文”查看更多分享。
  • 發(fā)表回復(fù)

    本版積分規(guī)則

    關(guān)閉

    站長(zhǎng)推薦上一條 /1 下一條


    聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表