新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 輕量級(jí)日志庫(kù) EasyLogger:為嵌入式開(kāi)發(fā)量身打造的日志神器!

輕量級(jí)日志庫(kù) EasyLogger:為嵌入式開(kāi)發(fā)量身打造的日志神器!

作者:嵌入式芯視野 時(shí)間:2025-03-10 來(lái)源:今日頭條 收藏

引言

在嵌入式開(kāi)發(fā)中,日志記錄是調(diào)試和問(wèn)題排查的重要工具。然而,傳統(tǒng)的日志庫(kù)往往過(guò)于臃腫,難以在資源受限的設(shè)備上運(yùn)行。今天,我要向大家推薦一款超輕量級(jí)、高性能的 ——。它不僅占用極少的資源(ROM<1.6K, RAM<0.3K),還提供了豐富的功能,非常適合 IoT 產(chǎn)品、可穿戴設(shè)備、智能家居等資源敏感的項(xiàng)目。

本文引用地址:http://2s4d.com/article/202503/467828.htm

1. 的核心優(yōu)勢(shì)

1.1 超輕量級(jí)設(shè)計(jì)
的設(shè)計(jì)理念是“小而美”,ROM 占用不到 1.6K,RAM 占用不到 0.3K,非常適合資源有限的嵌入式設(shè)備。相比 log4c、zlog 等知名日志庫(kù),EasyLogger 更加輕量,接口更簡(jiǎn)潔,上手更快。

1.2 強(qiáng)大的擴(kuò)展性
雖然 EasyLogger 的核心功能簡(jiǎn)單,但它支持通過(guò)插件形式進(jìn)行功能擴(kuò)展。目前已經(jīng)支持 Flash 日志存儲(chǔ)、文件日志轉(zhuǎn)存等功能,未來(lái)還會(huì)推出更多實(shí)用插件。

1.3 多平臺(tái)支持
EasyLogger 不僅支持常見(jiàn)的操作系統(tǒng)(如 RT-Thread、UCOS、Linux、Windows、Nuttx),還支持裸機(jī)平臺(tái),幾乎可以運(yùn)行在任何嵌入式設(shè)備上。


2. 主要特性一覽

2.1 自定義輸出方式
EasyLogger 允許用戶自定義日志的輸出方式,無(wú)論是終端、文件、數(shù)據(jù)庫(kù)、串口,還是 Flash,都可以輕松實(shí)現(xiàn)。

2.2 豐富的日志內(nèi)容
日志內(nèi)容可以包含級(jí)別、時(shí)間戳、線程信息、進(jìn)程信息等,幫助開(kāi)發(fā)者快速定位問(wèn)題。

2.3 線程安全與異步輸出
EasyLogger 的日志輸出設(shè)計(jì)為線程安全,并支持異步輸出和緩沖輸出模式,確保在高并發(fā)環(huán)境下也能穩(wěn)定運(yùn)行。

2.4 多彩日志顯示
各級(jí)別日志支持不同顏色顯示,調(diào)試信息一目了然。用戶還可以根據(jù)自己的喜好,自定義日志的顏色和字體風(fēng)格。

2.5 動(dòng)態(tài)過(guò)濾功能
支持按標(biāo)簽、級(jí)別、關(guān)鍵詞進(jìn)行動(dòng)態(tài)過(guò)濾,幫助開(kāi)發(fā)者快速定位關(guān)鍵日志,提升調(diào)試效率。


3. 插件系統(tǒng):讓 EasyLogger 更強(qiáng)大

3.1 Flash 插件
通過(guò) EasyFlash 庫(kù),EasyLogger 可以直接將日志存儲(chǔ)在 Flash 中,無(wú)需文件系統(tǒng)支持,非常適合無(wú)文件系統(tǒng)的小型嵌入式設(shè)備。

3.2 File 插件
支持文件轉(zhuǎn)檔、文件循環(huán)保存等功能,適合需要長(zhǎng)期存儲(chǔ)日志的場(chǎng)景。

3.3 更多插件敬請(qǐng)期待
EasyLogger 的插件系統(tǒng)非常靈活,未來(lái)還會(huì)推出更多實(shí)用插件,滿足不同場(chǎng)景的需求。


4. 如何使用 EasyLogger?

4.1 參數(shù)配置
EasyLogger 支持按標(biāo)簽、級(jí)別、關(guān)鍵詞進(jìn)行過(guò)濾,并可以動(dòng)態(tài)開(kāi)啟/關(guān)閉日志輸出。用戶還可以設(shè)置靜態(tài)和動(dòng)態(tài)的輸出級(jí)別,靈活控制日志的詳細(xì)程度。

4.2 輸出級(jí)別
EasyLogger 參考了 Android Logcat 的日志級(jí)別,從高到低分別為:

  • 0.[A]:斷言(Assert)

  • 1.[E]:錯(cuò)誤(Error)

  • 2.[W]:警告(Warn)

  • 3.[I]:信息(Info)

  • 4.[D]:調(diào)試(Debug)

  • 5.[V]:詳細(xì)(Verbose)

4.3 輸出格式
EasyLogger 支持多種輸出格式,包括級(jí)別、時(shí)間、標(biāo)簽、進(jìn)程信息、線程信息、文件路徑、行號(hào)、方法名等,每種優(yōu)先級(jí)可以獨(dú)立設(shè)置輸出格式。


5. 實(shí)際應(yīng)用場(chǎng)景

5.1 終端輸出
適合動(dòng)態(tài)查看日志,方便調(diào)試,但不具備存儲(chǔ)功能。

5.2 文件與 Flash 存儲(chǔ)
文件方式適合需要長(zhǎng)期存儲(chǔ)日志的場(chǎng)景,而 Flash 方式則更適合無(wú)文件系統(tǒng)的小型嵌入式設(shè)備。

5.3 Demo 演示
EasyLogger 提供了豐富的 Demo,展示了如何在 RT-Thread、STM32 等平臺(tái)上使用 EasyLogger。通過(guò)這些 Demo,開(kāi)發(fā)者可以快速上手并應(yīng)用到自己的項(xiàng)目中。

6. 開(kāi)源與社區(qū)支持

EasyLogger 是一個(gè)開(kāi)源項(xiàng)目,代碼托管在 GitHub、OSChina 和 Coding 上。如果你覺(jué)得這個(gè)項(xiàng)目很棒,不妨點(diǎn)擊右上角的 Star,支持一下開(kāi)發(fā)者!同時(shí),也歡迎大家貢獻(xiàn)代碼,設(shè)計(jì)更多實(shí)用插件,一起完善 EasyLogger。

https://gitee.com/Armink/EasyLogger


關(guān)鍵詞: C/C++ 日志庫(kù) EasyLogger

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉