本地日志

更新时间:2022-11-24 09:20:20下载pdf

应用代码开发调试过程中,通常需要结合打印日志定位问题原因。本文对涂鸦本地日志进行说明,便于快速理解 SDK 运行时产生的各种日志信息,同时提供涂鸦日志错误码查询表,可通过错误码在此文档快速实现搜索查询,定位问题原因。

日志设置

调试接口

日志调试相关的接口调用。

设置日志开关

函数原型 void tuya_user_elog_switch (IN bool on)
参数
  • true:打开日志,
  • false:关闭日志
功能 设置日志开关(系统重启生效,开启日志影响功耗)
头文件 #include <tuya_user_api.h>
返回值

枚举类型对应的字符串作为日志信息输出

函数原型 char *tuya_user_api_enum2str (ENUM_STR_T *a, int v)
参数
  • a:已定义的枚举信息表格,具体请参照下方结构体 ENUM_STR_T 的详细说明
  • v:指定的枚举值,具体请参照详细说明枚举 COMMON_CMD_E
功能 将定义的枚举类型对应的字符串作为日志信息输出
头文件 #include <tuya_user_api.h>
返回值 返回输入的枚举值对应的字符串信息
typedef struct {
  int  enum_val;  //枚举值
  char* string;   //枚举值对应的字符信息
} ENUM_STR_T;

设置涂鸦SDK层的日志过滤级别

函数原型 void tuya_user_api_set_sdk_dbg_filter_level (unsigned char filter_level)
参数 filter_level:SDK 层的日志级别,具体请参照 filter_level 取值宏定义的详细说明
功能 设置涂鸦 SDK 层的日志过滤级别
头文件 #include <tuya_user_api.h>
返回值

filter_level 取值宏定义

filter_level取值下高等级的打印等级,会打印本身级别以下(包含本身等级)的日志:

  • ELOG_LVL_ASSERT:值为 0,表示只会打印“ASSERT”级以下日志
  • ELOG_LVL_ERROR :值为 1,表示只会打印“ERROR”级以下日志,调用 USER_API_LOGE
  • ELOG_LVL_WARN :值为 2,表示只会打印“WARN”级以下日志,调用 USER_API_LOGW
  • ELOG_LVL_INFO :值为 3,表示只会打印“INFO”级以下日志,调用 USER_API_LOGI
  • ELOG_LVL_DEBUG :值为 4,表示只会打印“DEBUG”级以下日志,调用 USER_API_LOGD
  • ELOG_LVL_VERBOSE:值为 5,表示只会打印“VERBOSE”级以下日志,调用 USER_API_LOGV

打印HEX类型的数据信息

函数原型 #define USER_API_HEX_DUMP(name, width, buf, size) elog_hexdump(name, width, buf, size)
参数
  • name:作为此次打印数据的数据对象标识符,会在打印头显示
  • width:每一行打印的 16 进制数个数,比如,16/32 个
  • Buf:待打印的数据缓存区指针
  • Size:待打印的数据缓存区的数据字节长度
功能 打印HEX类型的数据信息
头文件 #include <tuya_user_api.h>
返回值