0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

分享一個適合單片機的輕量級日志庫

strongerHuang ? 來源: Github ? 2023-09-06 09:23 ? 次閱讀

單片機項目在很多時候都需要調試,通過日志診斷bug是常見的一種調試方法。

下面就給大家分享一個開源的適合單片機的輕量級日志庫,只有l(wèi)og.c 和 log.h 兩個文件,使用非常方便。

aca3dc78-4c4b-11ee-a25d-92fbcf53809c.png

用法

這個日志庫的使用比較簡單,新手完全可以勝任。

1、概述

在你的項目中添加log.c 和 log.h 文件。

提供 6 用于日志記錄的類似函數的宏:

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, ...);
每個函數都采用一個 printf 格式字符串,后跟其他參數
log_trace("Hello %s", "world")
生成一行給定格式的行打印到 stderr:
2026TRACEsrc/main.cHelloworld
2、接口描述

log_set_quiet(bool enable)

可以通過傳遞給函數來啟用Quiet安靜模式(不輸入日志)。

啟用此模式時,庫不會向輸出任何內容,但是將繼續(xù)寫入文件和回調(如果已設置)。truelog_set_quiet()stderr

log_set_level(int level)

可以使用該函數設置當前日志記錄級別。不會將低于給定級別的所有日志寫入 。默認情況下級別為LOG_TRACE, ,即不忽略任何內容。log_set_level()stderrLOG_TRACE

log_add_fp(FILE *fp, int level)

可以將一個或多個將寫入日志的文件指針提供給庫,通過使用函數。寫入文件的數據輸出采用以下格式:log_add_fp()

2047-03-11 2026 TRACE src/main.c Hello world

給定值以下的任何消息都將被忽略。如果庫無法添加文件指針返回小于零的值。

log_add_callback(log_LogFn fn, void *udata, int level)

使用日志數據調用的一個或多個回調函數可以是 通過使用函數提供給庫?;卣{ 函數傳遞一個包含數字、、字符串、printf va_list和給定 .log_add_callback()log_Eventlinefilenamefmtvaleveludata

log_set_lock(log_LockFn fn, void *udata)

如果日志將從多個線程寫入,則可以設置鎖定函數。如果應該獲取鎖,或者是否應該釋放鎖并給定值,則該函數將傳遞布爾值。truefalseudata

const char* log_level_string(int level)

以字符串形式返回給定日志級別的名稱。

LOG_USE_COLOR

如果使用-DLOG_USE_COLOR編譯庫,則在打印時將使用ANSI轉義碼。

開源協議

該庫為免費軟件庫,但你需要對應的 MIT 許可證條款。

開源地址:

https://github.com/rxi/log.c

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6023

    文章

    44376

    瀏覽量

    628309
  • 調試
    +關注

    關注

    7

    文章

    551

    瀏覽量

    33762
  • 文件
    +關注

    關注

    1

    文章

    551

    瀏覽量

    24559
  • 開源
    +關注

    關注

    3

    文章

    3125

    瀏覽量

    42068

原文標題:分享一個適合單片機的輕量級日志庫

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    國產芯上運行TinyMaxi輕量級的神經網絡推理-米爾基于芯馳D9國產商顯板

    TinyMaix是面向單片機的超輕量級的神經網絡推理,即TinyML推理,可以讓你在任意單片機上運行
    的頭像 發(fā)表于 07-05 08:02 ?1707次閱讀
    國產芯上運行TinyMaxi<b class='flag-5'>輕量級</b>的神經網絡推理<b class='flag-5'>庫</b>-米爾基于芯馳D9國產商顯板

    輕量級的ui框架如何去制作

    原創(chuàng)分享:自制輕量級單片機UI框架框架元素用戶接口代碼開源平時??碿sdn,但是從來沒有自己寫過。正好這幾天需要用單片機一個簡易的ui界面,于是自己寫了
    發(fā)表于 07-14 07:39

    如何自制輕量級單片機UI框架?

    如何自制輕量級單片機UI框架?
    發(fā)表于 10-14 06:13

    單片機日志系統(tǒng)的設計

    單片機設計了套簡單的日志系統(tǒng),通過日志系統(tǒng)提供的接口可以查看設備狀態(tài),并進行些基本的調試。
    發(fā)表于 04-02 14:26 ?5275次閱讀
    <b class='flag-5'>單片機</b>對<b class='flag-5'>日志</b>系統(tǒng)的設計

    原創(chuàng)分享:自制輕量級單片機UI框架

    原創(chuàng)分享:自制輕量級單片機UI框架框架元素用戶接口代碼開源平時??碿sdn,但是從來沒有自己寫過。正好這幾天需要用單片機一個簡易的ui界面,于是自己寫了
    發(fā)表于 11-05 15:20 ?29次下載
    原創(chuàng)分享:自制<b class='flag-5'>輕量級</b><b class='flag-5'>單片機</b>UI框架

    推薦3非常不錯的開源日志

    除了常用的log4c,log4cpp,下面給大家推薦3非常不錯的開源日志,比較適合用在單片機的項目中。從開始的輕量,到后面的功能豐富,最
    的頭像 發(fā)表于 05-12 14:51 ?4943次閱讀

    適合初學者超輕量級C語言網絡—Dyad

    Dyad 是基于 C 語言的異步網絡,旨在輕量級、可移植和易用。它既可用于創(chuàng)建小型獨立服務器,也可用于為現有的項目提供網絡支持。
    的頭像 發(fā)表于 10-10 14:33 ?1606次閱讀
    <b class='flag-5'>一</b>款<b class='flag-5'>適合</b>初學者超<b class='flag-5'>輕量級</b>C語言網絡<b class='flag-5'>庫</b>—Dyad

    TinyDB輕量級數據庫有哪些特點呢

    TinyDB 是純 Python 編寫的輕量級數據庫,共只有1800行代碼,沒有外部依賴項。
    的頭像 發(fā)表于 10-28 14:07 ?1340次閱讀

    PSoC NeoPixel Easy輕量級

    電子發(fā)燒友網站提供《PSoC NeoPixel Easy輕量級.zip》資料免費下載
    發(fā)表于 11-17 09:48 ?0次下載
    PSoC NeoPixel Easy<b class='flag-5'>輕量級</b><b class='flag-5'>庫</b>

    針對單片機開發(fā)的輕量級OTA組件

    今天為大家分享款開源的,專為單片機開發(fā)的輕量級 OTA 組件:mOTA。
    的頭像 發(fā)表于 12-26 09:36 ?1216次閱讀

    純Python編寫的輕量級數據庫

    TinyDB 是純 Python 編寫的輕量級數據庫共只有1800行代碼,沒有外部依賴項。
    的頭像 發(fā)表于 02-24 10:32 ?712次閱讀

    測評分享 | 如何在先楫HPM6750上運行輕量級AI推理框架TinyMaix

    推理框架,官方介紹如下:TinyMaix是面向單片機的超輕量級的神經網絡推理,即TinyML推理,可以讓你在任意單片機上運行
    的頭像 發(fā)表于 12-12 17:57 ?1427次閱讀
    測評分享 | 如何在先楫HPM6750上運行<b class='flag-5'>輕量級</b>AI推理框架TinyMaix

    輕量級數據庫有哪些

    輕量級數據庫有哪些 隨著互聯網和物聯網等新代信息技術的廣泛應用,數據系統(tǒng)也變得越來越重要。人們對于數據數據的可靠性、安全性和性能等要
    的頭像 發(fā)表于 08-28 16:41 ?5686次閱讀

    基于Rust的Log日志介紹

    種簡單的方法來實現日志記錄,本文將介紹如何使用Rust的Log作為日志門面,并結合env_logger和log4rs兩
    的頭像 發(fā)表于 09-19 14:49 ?3148次閱讀

    輕量級數據庫有哪些類型

    關系型數據是目前最常見的數據類型,它將數據以表的形式存儲,并使用SQL語言進行數據的管理和查詢。雖然關系型數據通常較為龐大和復雜,但仍有
    的頭像 發(fā)表于 12-20 11:29 ?1015次閱讀