13#include "tuya_cloud_types.h"
31typedef TAL_LOG_LEVEL_E LOG_LEVEL;
33#define DEF_LOG_BUF_LEN 1024
35#ifdef ENABLE_PRINTF_CHECK
36#define TAL_PRINTF_CHECK(formatArg, firstVarArg) __attribute__((format(printf, formatArg, firstVarArg)))
38#define TAL_PRINTF_CHECK(...)
42OPERATE_RET tal_log_module_print(CHAR_T *name,
43 CONST TAL_LOG_LEVEL_E level,
49OPERATE_RET tal_log_print(CONST TAL_LOG_LEVEL_E level,
56#ifndef _THIS_FILE_NAME_
57#define _THIS_FILE_NAME_ __FILE__
60#if defined(ENABLE_LOG) && (ENABLE_LOG==1)
62#define TAL_PR_ERR(fmt, ...) tal_log_print(TAL_LOG_LEVEL_ERR, _THIS_FILE_NAME_, __LINE__, fmt, ##__VA_ARGS__)
63#define TAL_PR_WARN(fmt, ...) tal_log_print(TAL_LOG_LEVEL_WARN, _THIS_FILE_NAME_, __LINE__, fmt, ##__VA_ARGS__)
64#define TAL_PR_NOTICE(fmt, ...) tal_log_print(TAL_LOG_LEVEL_NOTICE, _THIS_FILE_NAME_, __LINE__, fmt, ##__VA_ARGS__)
65#define TAL_PR_INFO(fmt, ...) tal_log_print(TAL_LOG_LEVEL_INFO, _THIS_FILE_NAME_, __LINE__, fmt, ##__VA_ARGS__)
66#define TAL_PR_DEBUG(fmt, ...) tal_log_print(TAL_LOG_LEVEL_DEBUG, _THIS_FILE_NAME_, __LINE__, fmt, ##__VA_ARGS__)
67#define TAL_PR_TRACE(fmt, ...) tal_log_print(TAL_LOG_LEVEL_TRACE, _THIS_FILE_NAME_, __LINE__, fmt, ##__VA_ARGS__)
69#define TAL_PR_HEXDUMP_ERR(title, buf, size) tal_log_hex_dump(TAL_LOG_LEVEL_ERR, _THIS_FILE_NAME_, __LINE__, title, 64, buf, size)
70#define TAL_PR_HEXDUMP_WARN(title, buf, size) tal_log_hex_dump(TAL_LOG_LEVEL_WARN, _THIS_FILE_NAME_, __LINE__, title, 64, buf, size)
71#define TAL_PR_HEXDUMP_NOTICE(title, buf, size) tal_log_hex_dump(TAL_LOG_LEVEL_NOTICE, _THIS_FILE_NAME_, __LINE__, title, 64, buf, size)
72#define TAL_PR_HEXDUMP_INFO(title, buf, size) tal_log_hex_dump(TAL_LOG_LEVEL_INFO, _THIS_FILE_NAME_, __LINE__, title, 64, buf, size)
73#define TAL_PR_HEXDUMP_DEBUG(title, buf, size) tal_log_hex_dump(TAL_LOG_LEVEL_DEBUG, _THIS_FILE_NAME_, __LINE__, title, 64, buf, size)
74#define TAL_PR_HEXDUMP_TRACE(title, buf, size) tal_log_hex_dump(TAL_LOG_LEVEL_TRACE, _THIS_FILE_NAME_, __LINE__, title, 64, buf, size)
78#define TAL_PR_ERR(fmt, ...)
79#define TAL_PR_WARN(fmt, ...)
80#define TAL_PR_NOTICE(fmt, ...)
81#define TAL_PR_INFO(fmt, ...)
82#define TAL_PR_DEBUG(fmt, ...)
83#define TAL_PR_TRACE(fmt, ...)
85#define TAL_PR_HEXDUMP_ERR(title, buf, size)
86#define TAL_PR_HEXDUMP_WARN(title, buf, size)
87#define TAL_PR_HEXDUMP_NOTICE(title, buf, size)
88#define TAL_PR_HEXDUMP_INFO(title, buf, size)
89#define TAL_PR_HEXDUMP_DEBUG(title, buf, size)
90#define TAL_PR_HEXDUMP_TRACE(title, buf, size)
95#define TAL_PR_DEBUG_RAW(fmt, ...) tal_log_print_raw(fmt, ##__VA_ARGS__)
96#define TAL_PR_TRACE_ENTER() TAL_PR_TRACE("enter [%s]", (const char*)__func__)
97#define TAL_PR_TRACE_LEAVE() TAL_PR_TRACE(("leave [%s]", (const char*)__func__))
100#define TAL_MPR_ERR(module,fmt, ...) tal_log_module_print(module, TAL_LOG_LEVEL_ERR, _THIS_FILE_NAME_, __LINE__, fmt, ##__VA_ARGS__)
101#define TAL_MPR_WARN(module,fmt, ...) tal_log_module_print(module, TAL_LOG_LEVEL_WARN, _THIS_FILE_NAME_, __LINE__, fmt, ##__VA_ARGS__)
102#define TAL_MPR_NOTICE(module,fmt, ...) tal_log_module_print(module, TAL_LOG_LEVEL_NOTICE, _THIS_FILE_NAME_, __LINE__, fmt, ##__VA_ARGS__)
103#define TAL_MPR_INFO(module,fmt, ...) tal_log_module_print(module, TAL_LOG_LEVEL_INFO, _THIS_FILE_NAME_, __LINE__, fmt, ##__VA_ARGS__)
104#define TAL_MPR_DEBUG(module,fmt, ...) tal_log_module_print(module, TAL_LOG_LEVEL_DEBUG, _THIS_FILE_NAME_, __LINE__, fmt, ##__VA_ARGS__)
105#define TAL_MPR_TRACE(module,fmt, ...) tal_log_module_print(module, TAL_LOG_LEVEL_TRACE, _THIS_FILE_NAME_, __LINE__, fmt, ##__VA_ARGS__)
109typedef VOID (*TAL_LOG_OUTPUT_CB)(IN CONST CHAR_T *str);
122OPERATE_RET tal_log_create_manage_and_init(CONST TAL_LOG_LEVEL_E level, CONST INT_T buf_len, CONST TAL_LOG_OUTPUT_CB output);
134OPERATE_RET tal_log_add_output_term(CONST CHAR_T *name, CONST TAL_LOG_OUTPUT_CB term);
145VOID tal_log_del_output_term(CONST CHAR_T *name);
156OPERATE_RET tal_log_set_manage_attr(CONST TAL_LOG_LEVEL_E level);
167OPERATE_RET tal_log_set_manage_ms_info(BOOL_T if_ms_level);
178OPERATE_RET tal_log_get_log_manage_attr(TAL_LOG_LEVEL_E *level);
189OPERATE_RET tal_log_add_module_level(CONST PCHAR_T module_name, CONST TAL_LOG_LEVEL_E level);
201OPERATE_RET tal_log_set_module_level(CONST PCHAR_T module_name, TAL_LOG_LEVEL_E level);
212OPERATE_RET tal_log_get_module_level(CONST PCHAR_T module_name, TAL_LOG_LEVEL_E *level);
223OPERATE_RET tal_log_delete_module_level(CONST PCHAR_T module_name);
235TAL_PRINTF_CHECK(1, 2)
236OPERATE_RET tal_log_print_raw(CONST PCHAR_T pFmt,...);
248VOID tal_log_release_manager(VOID);
263VOID tal_log_hex_dump(CONST TAL_LOG_LEVEL_E level,