EasyLogger概述
日誌是一種友好、強大的記錄軟體執行時內部結構和狀態的工具,是除錯、運維利器。當然每種語言都會提供專門的除錯工具,比如c/c++ gdb,java 的 jdb 等等。但是涉及到業務邏輯,併發,互動等情況時,還是日誌更輕巧、便捷。使用者,運維,開發人員,軟體學習愛好都需要日誌資訊。每個軟體都有自己的日誌系統,每種語言都有自己的日誌框架/模組,隨著網際網路和大資料的蓬勃發展,分散式的日誌系統,以及日誌分析系統也應用的越來越廣泛,越來越成熟。
EasyLogger 是一款超輕量級(ROM<1.6K, RAM<0.3k)、高效能的 C/C++ 日誌庫 ,非常適合對資源敏感的軟體專案,例如:IoT產品、可穿戴裝置、智慧家居等等。相比glog(google的開源日誌系統)、log4c、zlog這些知名的C日誌庫,EasyLogger的功能更加簡單,提供給使用者的介面更少,但上手很快,更多實用功能支援以外掛形式進行動態擴充套件。
EasyLogger主要功能支援使用者自定義輸出方式(例如:終端、檔案、資料庫、串列埠、485、Flash...);日誌內容可包含級別、時間戳、執行緒資訊、程序資訊等;日誌輸出被設計為執行緒安全的方式,並支援 非同步輸出 及 緩衝輸出模式;支援多種作業系統(RT-Thread、UCOS、Linux、Windows...),也支援裸機平臺;日誌支援 RAW格式 ;支援按 標籤 、 級別 、 關鍵詞 進行動態過濾;各級別日誌支援不同顏色顯示擴充套件性強,支援以外掛形式擴充套件新功能。支援Flash外掛,使用 EasyFlash 庫提供的Flash操作介面,無需檔案系統,直接將日誌儲存在 Flash 中。EasyLogger使用EasyLogger 引數配置
EasyLogger 擁有過濾方式、輸出格式、輸出開關這些屬性。
過濾方式支援按照標籤、級別、關鍵詞進行過濾;可以動態的開啟/關閉日誌的輸出;可設定動態和靜態的輸出級別(靜態:一級開關,通過巨集定義;動態:二級開關,通過API介面)。輸出級別
參考 Android Logcat ,級別最高為 0(Assert) ,最低為 5(Verbose) 。
0.[A]:斷言(Assert)1.[E]:錯誤(Error)2.[W]:警告(Warn)3.[I]:資訊(Info)4.[D]:除錯(Debug)5.[V]:詳細(Verbose)
各個級別日誌預設顏色效果如下。使用者也可以根據自己的喜好,在 elog_cfg.h 對各個級別日誌的顏色及字型風格進行單獨設定。
輸出過濾
支援按照 級別、標籤及關鍵詞 進行過濾。日誌內容較多時,使用過濾功能可以更快定位日誌,保證日誌的可讀性。更多的過濾功能設定方法及細節請閱讀\\docs\\zh\\api\\kernel.md文件。
輸出格式
輸出格式支援:級別、時間、標籤、程序資訊、執行緒資訊、檔案路徑、行號、方法名。每種優先級別可以獨立設定輸出格式。
EasyLogger原始碼EasyLogger 原始碼位於https://github.com/armink/EasyLogger,感興趣的可下載閱讀。