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