alog是一個非常精簡的串口輸出日誌組件, 類似easyloger,但是比easyloger更簡單易用,只有2個實際不到百行的文件,實現了基本日誌所需的全部功能。 需移植配置的介面選項少,實現了串口輸出字元串就可以用了,沒有C庫以外的其他依賴。 沒有存儲日誌相關的擴展的API,適合新手使用理解和在資... ...
alog
brief 功能介紹:
alog是一個非常精簡的串口輸出日誌組件,
類似easyloger,但是比easyloger更簡單易用,
只有2個實際不到百行的文件,實現了基本日誌所需的全部功能。
需移植配置的介面選項少,實現了串口輸出字元串就可以用了,沒有C庫以外的其他依賴。
沒有存儲日誌相關的擴展的API,適合新手使用理解和在資源緊張的單片機上移植使用
特色
- 支持可裁剪的格式輸出功能
- 預留互斥鎖的調用巨集定義
- 支持自定義log過濾的等級
- 支持顯示報錯所在文件和行數
- 預留RTC功能的巨集定義支持輸出報錯和警告的rtc時間
註意!!!
推薦在支持顏色碼的串口終端查看輸出的日誌,否則普通串口助手收到的顏色碼可能就是亂碼
例如:mobaxterm 、xshell 等
源碼結構
@version 當前版本:0.1
+---doc 文檔
+---example 例子
| ---port 移植好的常式
| +---ATK_stm32F407_HAL_example_5_uart 正點原子F407HAL庫串口常式
| |
| +---ATK_stm32F407_RES_example_5_uart 正點原子F407寄存器串口常式
| |
| +---ATK_stm32F407_STD_example_4_uart 正點原子F407標準庫串口常式
| |
| ---PY32F002A_uart
+---inc 頭文件
| alog.h
---src 源文件
alog.c
移植教程
可參考已經移植好的工程
和源碼對配置項的解釋
來移植到你使用的單片機平臺
步驟就是
- 首先把alog.h加入頭文件路徑目錄
- 然後把alog.c加入工程
- 把alog.h註釋掉的的巨集定義//#deine LOG_PORT_UART_INIT
換為#deine LOG_PORT_UART_INIT (你實現的對應的串口初始化函數) - 把alog.h註釋掉的的巨集定義//#deine LOG_PORT_UART_PUTS
換為#deine LOG_PORT_UART_PUTS (你實現的對應的串口輸出字元串的puts函數)
其他功能,例如互斥鎖和RTC時間戳功能,可選擇性實現。
如果你對互斥鎖沒有概念,那麼只需保證在裸機下讓日誌阻塞輸出,既不在中斷中直接輸出即可。
如果你已經會用rtc功能,那麼使用sprintf來實現一個返回rtc時間戳字元串的函數替換alog.h的#define LOG_RTC_STRING即可
開源地址
GLPv2開源協議
gitee開源地址:https://gitee.com/nikolan/alog.git
author 作者: ageek_nikola
郵箱:([email protected])