涂鸦TuyaOS
提供按照模块、分级别的日志记录能力,开发者可以根据自己的需求,选择合适的日志级别进行日志记录输出,同时也可以设置默认输出的日志级别,控制只输出默认输出日志级别以上的日志。涂鸦TuyaOS
的日志模块,支持灵活的添加输出的出口,开发者可以根据自己的需求,将日志输出到串口、文件或者是网络上。
涂鸦TuyaOS
同时也支持在线日志的模式,开发者可以在涂鸦IoT平台上,通过设备命令,设置日志的级别和输出出口,如果输出出口是MQTT,并且网络正常,客户即可在涂鸦IoT平台上看到设备日志信息。
日志级别信息
typedef enum {
TAL_LOG_LEVEL_ERR,
TAL_LOG_LEVEL_WARN,
TAL_LOG_LEVEL_NOTICE,
TAL_LOG_LEVEL_INFO,
TAL_LOG_LEVEL_DEBUG,
TAL_LOG_LEVEL_TRACE,
TAL_LOG_LEVEL_E
Definition of log level
Definition: tal_log.h:26
接口描述
日志输出宏
#define TAL_TAL_PR_ERR(fmt, ...)
#define TAL_PR_WARN(fmt, ...)
#define TAL_PR_NOTICE(fmt, ...)
#define TAL_PR_INFO(fmt, ...)
#define TAL_TAL_PR_DEBUG(fmt, ...)
#define TAL_PR_TRACE(fmt, ...)
设置日志输出级别
OPERATE_RET tal_log_set_manage_attr(CONST TAL_LOG_LEVEL_E level)
set global log level.
获取日志输出级别
OPERATE_RET tal_log_get_log_manage_attr(TAL_LOG_LEVEL_E *level)
get global log level.
添加日志输出
OPERATE_RET tal_log_add_output_term(CONST CHAR_T *name, CONST TAL_LOG_OUTPUT_CB term)
add one output terminal.
删除日志输出
VOID tal_log_del_output_term(CONST CHAR_T *name)
delete one output terminal.
使用示例
VOID log_output_to_file(IN CONST CHAR_T *str)
{
if(NULL == fp) {
TAL_PR_ERR("log uf file can't open and write data!");
return ;
}
uiWriteCnt =
ufwrite(fp, str, strlen(str));
if(uiWriteCnt != strlen(str)) {
TAL_PR_ERR("log uf file write data error!");
return ;
}
return;
}
VOID test_logoutput()
{
TAL_PR_DEBUG("a debug log");
TAL_PR_DEBUG("another debug log");
TAL_PR_DEBUG("an error log");
TAL_PR_DEBUG("another debug log");
TAL_PR_DEBUG("another error log");
return;
}
uFILE * ufopen(IN CHAR_T *filepath, IN CHAR_T *mode)
open a unique file
VOID uFILE
unique file handle
Definition: tuya_uf_db.h:22
OPERATE_RET ufclose(IN uFILE *fd)
close a unique file
UINT_T ufwrite(IN uFILE *fd, IN UCHAR_T *buf, IN CONST UINT_T len)
write to unique file