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

Logging中间件

功能描述

Logging中间件用于实现不同级别的日志输出功能支持DEBUG、INFO、WARN、ERROR、FATAL五个日志级别通过UART接口输出日志信息。

依赖关系

  • UART模块uart

接口说明

数据结构

log_level_t

日志级别枚举,用于设置和获取日志级别

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

void logging_init(void);

初始化日志模块

参数:无

返回值:无

logging_set_level

void logging_set_level(log_level_t level);

设置日志级别

参数

  • level: 日志级别

返回值:无

logging_get_level

log_level_t logging_get_level(void);

获取当前日志级别

参数:无

返回值:当前日志级别

log_debug

void log_debug(const char *format, ...);

输出调试级别日志

参数

  • format: 格式化字符串
  • ...: 可变参数

返回值:无

log_info

void log_info(const char *format, ...);

输出信息级别日志

参数

  • format: 格式化字符串
  • ...: 可变参数

返回值:无

log_warn

void log_warn(const char *format, ...);

输出警告级别日志

参数

  • format: 格式化字符串
  • ...: 可变参数

返回值:无

log_error

void log_error(const char *format, ...);

输出错误级别日志

参数

  • format: 格式化字符串
  • ...: 可变参数

返回值:无

log_fatal

void log_fatal(const char *format, ...);

输出致命错误级别日志

参数

  • format: 格式化字符串
  • ...: 可变参数

返回值:无

使用示例

/* 初始化日志模块 */
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或更高以减少日志输出对系统性能的影响