日志管理
日志管理相关功能的头文件为dji_logger.h
,本文档描述了dji_logger.h
文件中结构体和函数原型的关键信息和使用方法。
目录
宏定义、枚举与结构体
typedef function ConsoleFunc
功能:需要被注册的控制台方法 | product:all |
注册日志输出方式
说明:
在注册日志输出方式前,请先测试需要注册的方法,以确保他们能被正常使用。
typedef T_DjiReturnCode (*ConsoleFunc)(const uint8_t *data, uint16_t dataLen);
typedef enum E_DjiLoggerConsoleLogLevel
日志级别。
typedef enum {
DJI_LOGGER_CONSOLE_LOG_LEVEL_ERROR = 0, 打印系统错误类型(Error)的日志。控制台的方法与等级是彼此相关联的。如果注册的控制台方法的级别低于当前等级,等级接口不会被成功打印。
DJI_LOGGER_CONSOLE_LOG_LEVEL_WARN = 1, 打印警告信息类型(Warning)的日志。控制台的方法与等级是彼此相关联的。如果注册的控制台方法的级别低于当前等级,等级接口不会被成功打印。
DJI_LOGGER_CONSOLE_LOG_LEVEL_INFO = 2, 打印关键信息类型(Info)的日志。控制台的方法与等级是彼此相关联的。如果注册的控制台方法的级别低于当前等级,等级接口不会被成功打印。
DJI_LOGGER_CONSOLE_LOG_LEVEL_DEBUG = 3, 打印调试信息类型(Debug)的日志。控制台的方法与等级是彼此相关联的。如果注册的控制台方法的级别低于当前等级,等级接口不会被成功打印。
} E_DjiLoggerConsoleLogLevel;
typedef struct T_DjiLoggerConsole
日志等级
typedef struct {
uint8_t consoleLevel; 指定所需打印的日志等级,日志的等级从高到低为Debug、Info、Warn和Error,日志管理功能模块可打印不高于指定等级的所有日志
ConsoleFunc func; 指定日志输出方式,在注册日志输出方式前,请先测试该日志输出方式能够正常打印用户所需的日志
bool isSupportColor;
} T_DjiLoggerConsole;
函数原型
function DjiLogger_AddConsole
功能:为OSDK添加控制台功能与等级。 | product:all |
说明:
在注册控制台前,用户需要提供控制台方法以及与该方法相关的等级。日志等级从高到低为Debug, Info, Warn 和 Error。日志功能模块可以打印所有不高于特定级别的日志。最大支持同时注册8种不同的控制台方法。在注册控制台方法前,你需要测试注册模块以确保所有的方法是正常的。如果用户同时注册多个模块,所有的方法都会被打印。
T_DjiReturnCode DjiLogger_AddConsole(T_DjiLoggerConsole *console);
console:指向控制台功能的方法。
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode
function DjiLogger_UserLogOutput
功能:通过注册方法打印输出特定格式的选定等级的日志。 | product:all |
说明:
注册的方法是按照对应级别打印的。如果控制台的级别比需要被打印的log的级别低,将不会打印成功。
void PsdkLogger_UserLogInfo(const char *fmt, ...);
fmt:指向用户需打印的日志内容。
...:可变参数,与printf 中的可变参数用法一致 。
返回值
根据程序执行的情况输出对应的返回值,详情请参见:DjiErrorCode