89 lines
2.2 KiB
C
89 lines
2.2 KiB
C
/*
|
||
* 模块名称:Unified Debug Logging
|
||
* 模块功能:提供统一的调试输出宏,支持 DEBUG / INFO / ERROR 三级日志控制
|
||
* 参考 FlashDB FDB_DEBUG/FDB_INFO 设计模式
|
||
* 使用方法:
|
||
* 1. 在 dbg_cfg.h 中定义 DBG_ENABLE(总开关)和 DBG_DEBUG_ENABLE(DEBUG 级别)
|
||
* 2. 每个 .c 文件在包含本文件前定义 DBG_TAG,如:
|
||
* #define DBG_TAG "[CH395]"
|
||
* #include "dbg_log.h"
|
||
* 适用平台:所有 BSP 驱动
|
||
* 作者:王建锋
|
||
* 创建日期:2026-07-18
|
||
* 修改记录:
|
||
* 2026-07-18 王建锋 创建初始版本
|
||
*/
|
||
|
||
#ifndef __DBG_LOG_H
|
||
#define __DBG_LOG_H
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
#include <stdio.h>
|
||
#include "dbg_cfg.h"
|
||
|
||
/*
|
||
* 总开关:DBG_ENABLE
|
||
* 定义 → 输出 DBG_ERROR / DBG_INFO;若 DBG_DEBUG_ENABLE 也定义则输出 DBG_DEBUG
|
||
* 不定义 → 所有输出宏为空操作(release 版本)
|
||
* 在 net_config.h 或编译器预定义中控制
|
||
*/
|
||
#ifdef DBG_ENABLE
|
||
|
||
/*
|
||
* 可重定向的打印函数,用户可在编译选项或 net_config.h 中预定义
|
||
* #define DBG_PRINT(...) my_printf(__VA_ARGS__)
|
||
*/
|
||
#ifndef DBG_PRINT
|
||
#define DBG_PRINT(...) printf(__VA_ARGS__)
|
||
#endif
|
||
|
||
/*
|
||
* 模块标签默认值,每个 .c 文件应在包含本文件前定义 DBG_TAG
|
||
* #define DBG_TAG "[CH395]"
|
||
*/
|
||
#ifndef DBG_TAG
|
||
#define DBG_TAG ""
|
||
#endif
|
||
|
||
/*
|
||
* DBG_ERROR - 错误输出,受 DBG_ENABLE 控制
|
||
*/
|
||
#define DBG_ERROR(fmt, ...) do { \
|
||
DBG_PRINT("[ERR]" DBG_TAG " " fmt "\r\n", ##__VA_ARGS__); \
|
||
} while (0)
|
||
|
||
/*
|
||
* DBG_INFO - 信息输出,受 DBG_ENABLE 控制
|
||
*/
|
||
#define DBG_INFO(fmt, ...) do { \
|
||
DBG_PRINT(DBG_TAG " " fmt "\r\n", ##__VA_ARGS__); \
|
||
} while (0)
|
||
|
||
/*
|
||
* DBG_DEBUG - 调试输出,需 DBG_ENABLE + DBG_DEBUG_ENABLE 同时定义
|
||
*/
|
||
#ifdef DBG_DEBUG_ENABLE
|
||
#define DBG_DEBUG(fmt, ...) do { \
|
||
DBG_PRINT(DBG_TAG "(%s:%d) " fmt "\r\n", __func__, __LINE__, ##__VA_ARGS__); \
|
||
} while (0)
|
||
#else
|
||
#define DBG_DEBUG(fmt, ...)
|
||
#endif
|
||
|
||
#else /* DBG_ENABLE not defined — all debug output disabled */
|
||
|
||
#define DBG_ERROR(fmt, ...)
|
||
#define DBG_INFO(fmt, ...)
|
||
#define DBG_DEBUG(fmt, ...)
|
||
|
||
#endif /* DBG_ENABLE */
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
#endif /* __DBG_LOG_H */
|