日志管理

2023-03-29
5 分
3 用户已评分

日志管理相关功能的头文件为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
若您对文档有意见或疑惑,点击可快速反馈,我们会与您联系。