Files
stm32f407ve_black/Middlewares/logging/README.md
2026-01-22 16:36:56 +08:00

149 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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或更高以减少日志输出对系统性能的影响