TuyaOS
uni_log.h
1#ifndef _UNI_LOG_H
2#define _UNI_LOG_H
3
4#include "tal_log.h"
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10#define TY_LOG_LEVEL_ERR TAL_LOG_LEVEL_ERR
11#define TY_LOG_LEVEL_WARN TAL_LOG_LEVEL_WARN
12#define TY_LOG_LEVEL_NOTICE TAL_LOG_LEVEL_NOTICE
13#define TY_LOG_LEVEL_INFO TAL_LOG_LEVEL_INFO
14#define TY_LOG_LEVEL_DEBUG TAL_LOG_LEVEL_DEBUG
15#define TY_LOG_LEVEL_TRACE TAL_LOG_LEVEL_TRACE
16
17#define AddOutputTerm tal_log_add_output_term
18#define DelOutputTerm tal_log_del_output_term
19#define SetLogManageAttr tal_log_set_manage_attr
20#define SetLogManagemtime tal_log_set_manage_ms_info
21#define GetLogManageAttr tal_log_get_log_manage_attr
22#define PrintLogRaw tal_log_print_raw
23
24#define CreateLogManageAndInit(level, buf_len, output) \
25 tal_log_create_manage_and_init(level, buf_len, (TAL_LOG_OUTPUT_CB)output)
26
27#define tuya_debug_hex_dump(title, width, buf, size) \
28 tal_log_hex_dump(TAL_LOG_LEVEL_DEBUG, _THIS_FILE_NAME_, __LINE__, title, width, buf, size)
29
30
31// default global log level
32#if defined(ENABLE_IOT_DEBUG) && (ENABLE_IOT_DEBUG==1)
33#define TY_DEAULT_LOG_LEVEL TY_LOG_LEVEL_DEBUG
34#else
35#define TY_DEAULT_LOG_LEVEL TY_LOG_LEVEL_INFO
36#endif
37
38#define SAK_PRINT_LOG(module,level,fmt, ...) \
39 tal_log_module_print(module, level, _THIS_FILE_NAME_ , __LINE__, fmt, ##__VA_ARGS__)
40
41// this level, log dont has line_number information
42#define TUYA_REDUCE_BIN_LEVEL1 1
43// this level, log dont has file_name and line_number information, and trace information
44#define TUYA_REDUCE_BIN_LEVEL2 2
45// this level, log dont has file_name , line_number and no tare and debug information
46#define TUYA_REDUCE_BIN_LEVEL3 3
47
48// all type of log output interface
49#if defined(TUYA_REDUCE_BIN) && (TUYA_REDUCE_BIN >= TUYA_REDUCE_BIN_LEVEL2)
50TAL_PRINTF_CHECK(1, 2) OPERATE_RET PrintErrLog(CHAR_T* pFmt,...);
51TAL_PRINTF_CHECK(1, 2) OPERATE_RET PrintWarnLog(CHAR_T* pFmt,...);
52TAL_PRINTF_CHECK(1, 2) OPERATE_RET PrintInfoLog(CHAR_T* pFmt,...);
53TAL_PRINTF_CHECK(1, 2) OPERATE_RET PrintNoticeLog(CHAR_T* pFmt,...);
54TAL_PRINTF_CHECK(1, 2) OPERATE_RET PrintDebugLog(CHAR_T* pFmt,...);
55TAL_PRINTF_CHECK(1, 2) OPERATE_RET PrintTraceLog(CHAR_T* pFmt,...);
56
57#define SAK_PRINT_ERR_LOG(fmt, ...) PrintErrLog(fmt,##__VA_ARGS__)
58#define SAK_PRINT_WARN_LOG(fmt, ...) PrintWarnLog(fmt,##__VA_ARGS__)
59#define SAK_PRINT_INFO_LOG(fmt, ...) PrintInfoLog(fmt,##__VA_ARGS__)
60#define SAK_PRINT_NOTICE_LOG(fmt, ...) PrintNoticeLog(fmt,##__VA_ARGS__)
61#define SAK_PRINT_DEBUG_LOG(fmt, ...) PrintDebugLog(fmt,##__VA_ARGS__)
62#define SAK_PRINT_TRACE_LOG(fmt, ...) PrintTraceLog(fmt,##__VA_ARGS__)
63
64#elif defined(TUYA_REDUCE_BIN) && (TUYA_REDUCE_BIN >= TUYA_REDUCE_BIN_LEVEL1)
65TAL_PRINTF_CHECK(2, 3) OPERATE_RET PrintErrLog(CHAR_T* pFile, CHAR_T* pFmt,...);
66TAL_PRINTF_CHECK(2, 3) OPERATE_RET PrintWarnLog(CHAR_T* pFile, CHAR_T* pFmt,...);
67TAL_PRINTF_CHECK(2, 3) OPERATE_RET PrintInfoLog(CHAR_T* pFile, CHAR_T* pFmt,...);
68TAL_PRINTF_CHECK(2, 3) OPERATE_RET PrintNoticeLog(CHAR_T* pFile, CHAR_T* pFmt,...);
69TAL_PRINTF_CHECK(2, 3) OPERATE_RET PrintDebugLog(CHAR_T* pFile, CHAR_T* pFmt,...);
70TAL_PRINTF_CHECK(2, 3) OPERATE_RET PrintTraceLog(CHAR_T* pFile, CHAR_T* pFmt,...);
71
72#define SAK_PRINT_ERR_LOG(fmt, ...) PrintErrLog(_THIS_FILE_NAME_, fmt,##__VA_ARGS__)
73#define SAK_PRINT_WARN_LOG(fmt, ...) PrintWarnLog(_THIS_FILE_NAME_, fmt,##__VA_ARGS__)
74#define SAK_PRINT_INFO_LOG(fmt, ...) PrintInfoLog(_THIS_FILE_NAME_, fmt,##__VA_ARGS__)
75#define SAK_PRINT_NOTICE_LOG(fmt, ...) PrintNoticeLog(_THIS_FILE_NAME_, fmt,##__VA_ARGS__)
76#define SAK_PRINT_DEBUG_LOG(fmt, ...) PrintDebugLog(_THIS_FILE_NAME_, fmt,##__VA_ARGS__)
77#define SAK_PRINT_TRACE_LOG(fmt, ...) PrintTraceLog(_THIS_FILE_NAME_, fmt,##__VA_ARGS__)
78
79#else
80TAL_PRINTF_CHECK(3, 4) OPERATE_RET PrintErrLog(CHAR_T* pFile, UINT_T line, CHAR_T* pFmt,...);
81TAL_PRINTF_CHECK(3, 4) OPERATE_RET PrintWarnLog(CHAR_T* pFile, UINT_T line, CHAR_T* pFmt,...);
82TAL_PRINTF_CHECK(3, 4) OPERATE_RET PrintInfoLog(CHAR_T* pFile, UINT_T line, CHAR_T* pFmt,...);
83TAL_PRINTF_CHECK(3, 4) OPERATE_RET PrintNoticeLog(CHAR_T* pFile, UINT_T line, CHAR_T* pFmt,...);
84TAL_PRINTF_CHECK(3, 4) OPERATE_RET PrintDebugLog(CHAR_T* pFile, UINT_T line, CHAR_T* pFmt,...);
85TAL_PRINTF_CHECK(3, 4) OPERATE_RET PrintTraceLog(CHAR_T* pFile, UINT_T line, CHAR_T* pFmt,...);
86
87#define SAK_PRINT_ERR_LOG(fmt, ...) PrintErrLog(_THIS_FILE_NAME_, __LINE__, fmt,##__VA_ARGS__)
88#define SAK_PRINT_WARN_LOG(fmt, ...) PrintWarnLog(_THIS_FILE_NAME_, __LINE__,fmt,##__VA_ARGS__)
89#define SAK_PRINT_INFO_LOG(fmt, ...) PrintInfoLog(_THIS_FILE_NAME_, __LINE__,fmt,##__VA_ARGS__)
90#define SAK_PRINT_NOTICE_LOG(fmt, ...) PrintNoticeLog(_THIS_FILE_NAME_, __LINE__,fmt,##__VA_ARGS__)
91#define SAK_PRINT_DEBUG_LOG(fmt, ...) PrintDebugLog(_THIS_FILE_NAME_, __LINE__,fmt,##__VA_ARGS__)
92#define SAK_PRINT_TRACE_LOG(fmt, ...) PrintTraceLog(_THIS_FILE_NAME_, __LINE__,fmt,##__VA_ARGS__)
93#endif
94
95// there is no trace and debug information when REDUCE_BIN leven bigger than LEVEL3
96#if defined(TUYA_REDUCE_BIN) && (TUYA_REDUCE_BIN >= TUYA_REDUCE_BIN_LEVEL3)
97#define PR_TRACE(fmt, ...)
98#define PR_TRACE_ENTER()
99#define PR_TRACE_LEAVE()
100#define MPR_TRACE(module,fmt, ...)
101#define PR_DEBUG(fmt, ...)
102#define MPR_DEBUG(module,fmt, ...)
103// there is no trace information when REDUCE_BIN leven bigger than LEVEL2
104#elif defined(TUYA_REDUCE_BIN) && (TUYA_REDUCE_BIN >= TUYA_REDUCE_BIN_LEVEL2)
105#define PR_TRACE(fmt, ...)
106#define PR_TRACE_ENTER()
107#define PR_TRACE_LEAVE()
108#define MPR_TRACE(module,fmt, ...)
109#define PR_DEBUG(fmt, ...) SAK_PRINT_DEBUG_LOG(fmt, ##__VA_ARGS__)
110#define MPR_DEBUG(module,fmt, ...) SAK_PRINT_LOG(module,TY_LOG_LEVEL_DEBUG, fmt, ##__VA_ARGS__)
111#else
112#define PR_TRACE(fmt, ...) SAK_PRINT_TRACE_LOG(fmt, ##__VA_ARGS__)
113#define PR_TRACE_ENTER() PR_TRACE("enter [%s]", (const char*)__func__)
114#define PR_TRACE_LEAVE() PR_TRACE("leave [%s]", (const char*)__func__)
115#define MPR_TRACE(module,fmt, ...) SAK_PRINT_LOG(module,TY_LOG_LEVEL_TRACE, fmt, ##__VA_ARGS__)
116#define PR_DEBUG(fmt, ...) SAK_PRINT_DEBUG_LOG(fmt, ##__VA_ARGS__)
117#define MPR_DEBUG(module,fmt, ...) SAK_PRINT_LOG(module,TY_LOG_LEVEL_DEBUG, fmt, ##__VA_ARGS__)
118#endif
119
120// log interface for user
121#define PR_ERR(fmt, ...) SAK_PRINT_ERR_LOG(fmt, ##__VA_ARGS__)
122#define PR_WARN(fmt, ...) SAK_PRINT_WARN_LOG(fmt, ##__VA_ARGS__)
123#define PR_NOTICE(fmt, ...) SAK_PRINT_NOTICE_LOG(fmt, ##__VA_ARGS__)
124#define PR_INFO(fmt, ...) SAK_PRINT_INFO_LOG(fmt, ##__VA_ARGS__)
125
126//used for auto test
127#define PR_AUTOTEST PR_NOTICE
128
129// set log level
130#define SET_PR_DEBUG_LEVEL(level) SetLogManageAttr(level)
131
132// log output interface with module name
133#define MPR_ERR(module,fmt, ...) SAK_PRINT_LOG(module,TY_LOG_LEVEL_ERR, fmt, ##__VA_ARGS__)
134#define MPR_WARN(module,fmt, ...) SAK_PRINT_LOG(module,TY_LOG_LEVEL_WARN, fmt, ##__VA_ARGS__)
135#define MPR_NOTICE(module,fmt, ...) SAK_PRINT_LOG(module,TY_LOG_LEVEL_NOTICE, fmt, ##__VA_ARGS__)
136#define MPR_INFO(module,fmt, ...) SAK_PRINT_LOG(module,TY_LOG_LEVEL_INFO, fmt, ##__VA_ARGS__)
137
138#if defined(TUYA_REDUCE_BIN) && (TUYA_REDUCE_BIN >= TUYA_REDUCE_BIN_LEVEL3)
139#define PR_DEBUG_RAW(fmt, ...)
140#else
141#if defined(ENABLE_IOT_DEBUG) && (ENABLE_IOT_DEBUG==1)
142#define PR_DEBUG_RAW(fmt, ...) PrintLogRaw(fmt, ##__VA_ARGS__)
143#else
144#define PR_DEBUG_RAW(fmt, ...)
145#endif
146#endif
147
148#ifdef __cplusplus
149}
150#endif /* __cplusplus */
151
152#endif
This is tal_log file