149 lines
2.7 KiB
Markdown
149 lines
2.7 KiB
Markdown
# Logging中间件
|
||
|
||
## 功能描述
|
||
Logging中间件用于实现不同级别的日志输出功能,支持DEBUG、INFO、WARN、ERROR、FATAL五个日志级别,通过UART接口输出日志信息。
|
||
|
||
## 依赖关系
|
||
- UART模块:uart
|
||
|
||
## 接口说明
|
||
|
||
### 数据结构
|
||
|
||
#### log_level_t
|
||
日志级别枚举,用于设置和获取日志级别
|
||
```c
|
||
typedef enum {
|
||
LOG_LEVEL_DEBUG = 0U, /*!< 调试级别 */
|
||
LOG_LEVEL_INFO = 1U, /*!< 信息级别 */
|
||
LOG_LEVEL_WARN = 2U, /*!< 警告级别 */
|
||
LOG_LEVEL_ERROR = 3U, /*!< 错误级别 */
|
||
LOG_LEVEL_FATAL = 4U, /*!< 致命错误级别 */
|
||
LOG_LEVEL_NONE = 5U /*!< 无日志输出 */
|
||
} log_level_t;
|
||
```
|
||
|
||
### 函数接口
|
||
|
||
#### logging_init
|
||
```c
|
||
void logging_init(void);
|
||
```
|
||
初始化日志模块
|
||
|
||
**参数**:无
|
||
|
||
**返回值**:无
|
||
|
||
#### logging_set_level
|
||
```c
|
||
void logging_set_level(log_level_t level);
|
||
```
|
||
设置日志级别
|
||
|
||
**参数**:
|
||
- level: 日志级别
|
||
|
||
**返回值**:无
|
||
|
||
#### logging_get_level
|
||
```c
|
||
log_level_t logging_get_level(void);
|
||
```
|
||
获取当前日志级别
|
||
|
||
**参数**:无
|
||
|
||
**返回值**:当前日志级别
|
||
|
||
#### log_debug
|
||
```c
|
||
void log_debug(const char *format, ...);
|
||
```
|
||
输出调试级别日志
|
||
|
||
**参数**:
|
||
- format: 格式化字符串
|
||
- ...: 可变参数
|
||
|
||
**返回值**:无
|
||
|
||
#### log_info
|
||
```c
|
||
void log_info(const char *format, ...);
|
||
```
|
||
输出信息级别日志
|
||
|
||
**参数**:
|
||
- format: 格式化字符串
|
||
- ...: 可变参数
|
||
|
||
**返回值**:无
|
||
|
||
#### log_warn
|
||
```c
|
||
void log_warn(const char *format, ...);
|
||
```
|
||
输出警告级别日志
|
||
|
||
**参数**:
|
||
- format: 格式化字符串
|
||
- ...: 可变参数
|
||
|
||
**返回值**:无
|
||
|
||
#### log_error
|
||
```c
|
||
void log_error(const char *format, ...);
|
||
```
|
||
输出错误级别日志
|
||
|
||
**参数**:
|
||
- format: 格式化字符串
|
||
- ...: 可变参数
|
||
|
||
**返回值**:无
|
||
|
||
#### log_fatal
|
||
```c
|
||
void log_fatal(const char *format, ...);
|
||
```
|
||
输出致命错误级别日志
|
||
|
||
**参数**:
|
||
- format: 格式化字符串
|
||
- ...: 可变参数
|
||
|
||
**返回值**:无
|
||
|
||
## 使用示例
|
||
|
||
```c
|
||
/* 初始化日志模块 */
|
||
logging_init();
|
||
|
||
/* 设置日志级别为DEBUG */
|
||
logging_set_level(LOG_LEVEL_DEBUG);
|
||
|
||
/* 输出不同级别的日志 */
|
||
log_debug("Debug message, value: %d\r\n", 123);
|
||
log_info("Info message\r\n");
|
||
log_warn("Warning message\r\n");
|
||
log_error("Error message\r\n");
|
||
log_fatal("Fatal message\r\n");
|
||
```
|
||
|
||
## 日志格式
|
||
日志输出格式为:
|
||
```
|
||
[LOG_LEVEL] message\r\n
|
||
例如:
|
||
[DEBUG] Debug message\r\n
|
||
[INFO] Info message\r\n
|
||
[WARN] Warning message\r\n
|
||
[ERROR] Error message\r\n
|
||
[FATAL] Fatal message\r\n
|
||
## 注意事项
|
||
1. 日志模块依赖于UART模块,确保UART模块已正确初始化
|
||
2. 日志级别越高,输出的日志越少
|
||
3. 建议在生产环境中将日志级别设置为INFO或更高,以减少日志输出对系统性能的影响 |