日志管理

2023-09-11
暂无评分

目录

宏定义、枚举与结构体

typedef enum LogLevel

日志级别

enum LogLevel {
kLevelError = 0,
kLevelWarn = 1,
kLevelInfo = 2,
kLevelDebug = 3,
};

typedef struct LoggerConsole

日志终端配置

struct LoggerConsole {
/*! 日志输出函数定义 */
using OutputFunc = std::function<ErrorCode(const uint8_t *, uint32_t)>;

/*! 过滤日志级别, 小于等于该级别的日志才输出 */
LogLevel level;

/*! 输出日志处理函数 */
OutputFunc output_func;

/*! 终端是否支持颜色显示 */
bool is_support_color;
};

函数

function EdgeSDKLoggerOutput

void EdgeSDKLoggerOutput(LogLevel level, const char *fmt, ...);

#define DEBUG(fmt, ...)                                                      \
    EdgeSDKLoggerOutput(kLevelDebug, "[%s:%d) " fmt, __FUNCTION__, __LINE__, \
                        ##__VA_ARGS__)

#define INFO(fmt, ...)                                                      \
    EdgeSDKLoggerOutput(kLevelInfo, "[%s:%d) " fmt, __FUNCTION__, __LINE__, \
                        ##__VA_ARGS__)

#define WARN(fmt, ...)                                                      \
    EdgeSDKLoggerOutput(kLevelWarn, "[%s:%d) " fmt, __FUNCTION__, __LINE__, \
                        ##__VA_ARGS__)

#define ERROR(fmt, ...)                                                      \
    EdgeSDKLoggerOutput(kLevelError, "[%s:%d) " fmt, __FUNCTION__, __LINE__, \
                        ##__VA_ARGS__)