1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        EasyLogger超輕量級(jí)、高性能 C/C++ 日志庫(kù)

        聯(lián)合創(chuàng)作 · 2023-09-30 00:22

        1、介紹

        EasyLogger 是一款超輕量級(jí)(ROM

        1.1 主要特性

        • 支持用戶自定義輸出方式(例如:終端、文件、數(shù)據(jù)庫(kù)、串口、485、Flash...);

        • 日志內(nèi)容可包含級(jí)別、時(shí)間戳、線程信息、進(jìn)程信息等;

        • 日志輸出被設(shè)計(jì)為線程安全的方式;

        • 支持多種操作系統(tǒng)(RT-Thread、UCOS、Linux、Windows...),也支持裸機(jī)平臺(tái);

        • 日志支持RAW格式;

        • 支持按標(biāo)簽、級(jí)別 、關(guān)鍵詞進(jìn)行動(dòng)態(tài)過(guò)濾;

        • 各級(jí)別日志支持不同顏色顯示;

        • 擴(kuò)展性強(qiáng),支持以插件形式擴(kuò)展新功能。

        名詞解釋:
        1、RAW格式:未經(jīng)過(guò)格式化的原始日志。
        2、標(biāo)簽:在軟件中可以按照文件、模塊、功能等方面,對(duì)需要打印的日志設(shè)定標(biāo)簽,實(shí)現(xiàn)日志分類。

        1.2 插件

        • 1、Flash:使用EasyFlash庫(kù)提供的Flash操作接口,可以把日志直接存儲(chǔ)在Flash中。

        • 2、File(正在開(kāi)發(fā)):支持文件轉(zhuǎn)檔、軟件運(yùn)行時(shí)動(dòng)態(tài)加載配置文件等與文件日志輸出相關(guān)功能。

        • 敬請(qǐng)期待……

        1.3 Star & Fork

        后續(xù)我還會(huì)提供更多插件。也非常歡迎大家設(shè)計(jì)、開(kāi)發(fā)更多實(shí)用插件和功能,一起來(lái)完善EasyLogger (Github|OSChina) 。如果覺(jué)得這個(gè)開(kāi)源項(xiàng)目很贊,可以點(diǎn)擊項(xiàng)目主頁(yè)右上角的Star,同時(shí)把它推薦給更多有需要的朋友。

        2、使用

        2.1 參數(shù)配置

        EasyLogger擁有過(guò)濾方式、輸出格式、輸出開(kāi)關(guān)這些屬性。

        • 過(guò)濾方式支持按照標(biāo)簽、級(jí)別、關(guān)鍵詞進(jìn)行過(guò)濾;

        • 可以動(dòng)態(tài)的開(kāi)啟/關(guān)閉日志的輸出;

        • 可設(shè)定動(dòng)態(tài)和靜態(tài)的輸出級(jí)別(靜態(tài):一級(jí)開(kāi)關(guān),通過(guò)宏定義;動(dòng)態(tài):二級(jí)開(kāi)關(guān),通過(guò)API接口)。

        注:目前參數(shù)配置及輸出方式都是單例模式,即全局只支持一種配置方式。此模式下,軟件會(huì)較為簡(jiǎn)單,但是無(wú)法支持復(fù)雜的輸出方式。

        2.2 輸出級(jí)別

        參考Android Logcat,級(jí)別最高為0(Assert),最低為5(Verbose)。

        0.[A]:斷言(Assert)
        1.[E]:錯(cuò)誤(Error)
        2.[W]:警告(Warn)
        3.[I]:信息(Info)
        4.[D]:調(diào)試(Debug)
        5.[V]:詳細(xì)(Verbose)

        2.2.1 輸出繽紛多彩的日志

        各個(gè)級(jí)別日志默認(rèn)顏色效果如下。用戶也可以根據(jù)自己的喜好,在 elog_cfg.h 對(duì)各個(gè)級(jí)別日志的顏色及字體風(fēng)格進(jìn)行單獨(dú)設(shè)置。

        TextColor

        2.3 輸出過(guò)濾

        支持按照級(jí)別、標(biāo)簽及關(guān)鍵詞進(jìn)行過(guò)濾。日志內(nèi)容較多時(shí),使用過(guò)濾功能可以更快定位日志,保證日志的可讀性。更多的過(guò)濾功能設(shè)置方法及細(xì)節(jié)請(qǐng)閱讀\docs\zh\api\kernel.md文檔。

        2.4 輸出格式

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

        注:默認(rèn)為RAW格式,RAW格式日志不支持標(biāo)簽過(guò)濾

        2.5 輸出方式

        通過(guò)用戶的移植,可以支持任何一種輸出方式。只不過(guò)對(duì)于某種輸出方式可能引入的新功能,需要通過(guò)插件實(shí)現(xiàn),例如:文件轉(zhuǎn)存,檢索Flash日志等等。后期會(huì)有更多的插件開(kāi)源出來(lái)。下面簡(jiǎn)單對(duì)比下部分輸出方式使用場(chǎng)景:

        • 終端:方便用戶動(dòng)態(tài)查看,不具有存儲(chǔ)功能;

        • 文件與Flash:都具有存儲(chǔ)功能,用戶可以查看歷史日志。但是文件方式需要文件系統(tǒng)的支持,而Flash方式更加適合應(yīng)用在無(wú)文件系統(tǒng)的小型嵌入式設(shè)備中。

        2.6 Demo

        2.6.1 核心功能

        下圖為在終端中輸入命令來(lái)控制日志的輸出及過(guò)濾器的設(shè)置,更加直觀的展示了EasyLogger核心功能。

        • Demo路徑:\demo\os\rt-thread\stm32f10x\

        • API文檔:\docs\zh\api\kernel.md

        • 移植文檔:\docs\zh\port\kernel.md

         

        2.6.2 Flash Log(將日志保存到Flash中)

        下圖過(guò)程為通過(guò)控制臺(tái)輸出日志,并將輸出的日志存儲(chǔ)到Flash中。重啟再讀取上次保存的日志,最后清空Flash日志。

        • Demo路徑:\demo\os\rt-thread\stm32f10x\

        • API文檔:\docs\zh\api\flash.md

        • 移植文檔:\docs\zh\port\flash.md

        更多Windows、Linux等平臺(tái)的Demo,都位于\demo文件夾下。

        3、文檔

        具體內(nèi)容參考\docs\zh\下的文件。務(wù)必保證在閱讀文檔后再移植使用。

        4、后期

        • 1、Flash存儲(chǔ)(已完成):在EasyFlash中增加日志存儲(chǔ)、讀取功能,讓EasyLogger與其無(wú)縫對(duì)接。使日志可以更加容易的存儲(chǔ)在非文件系統(tǒng)中,并具有歷史日檢索的功能;

        • 2、配置文件:文件系統(tǒng)下的配置文件;

        • 3、文件轉(zhuǎn)檔:文件系統(tǒng)下支持文件按容量轉(zhuǎn)檔,按時(shí)間區(qū)分;

        • 4、日志助手:開(kāi)發(fā)跨平臺(tái)的日志助手,兼容Linux、Windows、Mac系統(tǒng),打開(kāi)助手即可查看、過(guò)濾(支持正則表達(dá)式)、排序、保存日志等。前端:HTML5+ Bootstrap + AngularJS + NW.js,后端:Rust + iron + rust-websocket + serial-rs;

        • 5、異步輸出(已完成):目前日志輸出與用戶代碼之間是同步的方式,這種方式雖然軟件簡(jiǎn)單,也不存在日志覆蓋的問(wèn)題。但在輸出速度較低的平臺(tái)下,會(huì)由于增加日志功能,而降低軟件運(yùn)行速度。所以后期會(huì)增加異步輸出方式,關(guān)鍵字過(guò)濾也可以放到異步輸出中去;

        • 6、Arduino:增加Arduino lib,并提供其Demo;

        5、許可

        MIT Copyright (c) [email protected]

        瀏覽 46
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            麻豆三级| 一区二区三区四区五区在线视频 | 成人女人大片免费播放二级 | 久久久久久国产精品成人 | 操12p | 二攻一受3p寝室高h | 日本美女一级片 | 91视频在线观看18 | 宝贝~不许穿内裤调教 | 成人黄色网址 |