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_NOTICE, __FILE__, __LINE__, title, width, buf, size)
29
30
31// default global log level
32#if defined(TUYA_IOT_DEBUG) && (TUYA_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// file name maybe define from complie parameter
39#ifndef _THIS_FILE_NAME_
40#define _THIS_FILE_NAME_ __FILE__
41#endif
42
43
44#define SAK_PRINT_LOG(module,level,fmt, ...) \
45 tal_log_module_print(module, level, _THIS_FILE_NAME_ , __LINE__, fmt, ##__VA_ARGS__)
46
47// this level, log dont has line_number information
48#define TUYA_REDUCE_BIN_LEVEL1 1
49// this level, log dont has file_name and line_number information, and trace information
50#define TUYA_REDUCE_BIN_LEVEL2 2
51// this level, log dont has file_name , line_number and no tare and debug information
52#define TUYA_REDUCE_BIN_LEVEL3 3
53
54// all type of log output interface
55#if defined(TUYA_REDUCE_BIN) && (TUYA_REDUCE_BIN >= TUYA_REDUCE_BIN_LEVEL2)
56OPERATE_RET PrintErrLog(CHAR_T* pFmt,...);
57OPERATE_RET PrintWarnLog(CHAR_T* pFmt,...);
58OPERATE_RET PrintInfoLog(CHAR_T* pFmt,...);
59OPERATE_RET PrintNoticeLog(CHAR_T* pFmt,...);
60OPERATE_RET PrintDebugLog(CHAR_T* pFmt,...);
61OPERATE_RET PrintTraceLog(CHAR_T* pFmt,...);
62
63#define SAK_PRINT_ERR_LOG(fmt, ...) PrintErrLog(fmt,##__VA_ARGS__)
64#define SAK_PRINT_WARN_LOG(fmt, ...) PrintWarnLog(fmt,##__VA_ARGS__)
65#define SAK_PRINT_INFO_LOG(fmt, ...) PrintInfoLog(fmt,##__VA_ARGS__)
66#define SAK_PRINT_NOTICE_LOG(fmt, ...) PrintNoticeLog(fmt,##__VA_ARGS__)
67#define SAK_PRINT_DEBUG_LOG(fmt, ...) PrintDebugLog(fmt,##__VA_ARGS__)
68#define SAK_PRINT_TRACE_LOG(fmt, ...) PrintTraceLog(fmt,##__VA_ARGS__)
69
70#elif defined(TUYA_REDUCE_BIN) && (TUYA_REDUCE_BIN >= TUYA_REDUCE_BIN_LEVEL1)
71OPERATE_RET PrintErrLog(CHAR_T* pFile, CHAR_T* pFmt,...);
72OPERATE_RET PrintWarnLog(CHAR_T* pFile, CHAR_T* pFmt,...);
73OPERATE_RET PrintInfoLog(CHAR_T* pFile, CHAR_T* pFmt,...);
74OPERATE_RET PrintNoticeLog(CHAR_T* pFile, CHAR_T* pFmt,...);
75OPERATE_RET PrintDebugLog(CHAR_T* pFile, CHAR_T* pFmt,...);
76OPERATE_RET PrintTraceLog(CHAR_T* pFile, CHAR_T* pFmt,...);
77
78#define SAK_PRINT_ERR_LOG(fmt, ...) PrintErrLog(_THIS_FILE_NAME_, fmt,##__VA_ARGS__)
79#define SAK_PRINT_WARN_LOG(fmt, ...) PrintWarnLog(_THIS_FILE_NAME_, fmt,##__VA_ARGS__)
80#define SAK_PRINT_INFO_LOG(fmt, ...) PrintInfoLog(_THIS_FILE_NAME_, fmt,##__VA_ARGS__)
81#define SAK_PRINT_NOTICE_LOG(fmt, ...) PrintNoticeLog(_THIS_FILE_NAME_, fmt,##__VA_ARGS__)
82#define SAK_PRINT_DEBUG_LOG(fmt, ...) PrintDebugLog(_THIS_FILE_NAME_, fmt,##__VA_ARGS__)
83#define SAK_PRINT_TRACE_LOG(fmt, ...) PrintTraceLog(_THIS_FILE_NAME_, fmt,##__VA_ARGS__)
84
85#else
86OPERATE_RET PrintErrLog(CHAR_T* pFile, UINT_T line, CHAR_T* pFmt,...);
87OPERATE_RET PrintWarnLog(CHAR_T* pFile, UINT_T line, CHAR_T* pFmt,...);
88OPERATE_RET PrintInfoLog(CHAR_T* pFile, UINT_T line, CHAR_T* pFmt,...);
89OPERATE_RET PrintNoticeLog(CHAR_T* pFile, UINT_T line, CHAR_T* pFmt,...);
90OPERATE_RET PrintDebugLog(CHAR_T* pFile, UINT_T line, CHAR_T* pFmt,...);
91OPERATE_RET PrintTraceLog(CHAR_T* pFile, UINT_T line, CHAR_T* pFmt,...);
92
93#define SAK_PRINT_ERR_LOG(fmt, ...) PrintErrLog(_THIS_FILE_NAME_, __LINE__, fmt,##__VA_ARGS__)
94#define SAK_PRINT_WARN_LOG(fmt, ...) PrintWarnLog(_THIS_FILE_NAME_, __LINE__,fmt,##__VA_ARGS__)
95#define SAK_PRINT_INFO_LOG(fmt, ...) PrintInfoLog(_THIS_FILE_NAME_, __LINE__,fmt,##__VA_ARGS__)
96#define SAK_PRINT_NOTICE_LOG(fmt, ...) PrintNoticeLog(_THIS_FILE_NAME_, __LINE__,fmt,##__VA_ARGS__)
97#define SAK_PRINT_DEBUG_LOG(fmt, ...) PrintDebugLog(_THIS_FILE_NAME_, __LINE__,fmt,##__VA_ARGS__)
98#define SAK_PRINT_TRACE_LOG(fmt, ...) PrintTraceLog(_THIS_FILE_NAME_, __LINE__,fmt,##__VA_ARGS__)
99#endif
100
101// there is no trace and debug information when REDUCE_BIN leven bigger than LEVEL3
102#if defined(TUYA_REDUCE_BIN) && (TUYA_REDUCE_BIN >= TUYA_REDUCE_BIN_LEVEL3)
103#define PR_TRACE(fmt, ...)
104#define PR_TRACE_ENTER()
105#define PR_TRACE_LEAVE()
106#define MPR_TRACE(module,fmt, ...)
107#define PR_DEBUG(fmt, ...)
108#define MPR_DEBUG(module,fmt, ...)
109// there is no trace information when REDUCE_BIN leven bigger than LEVEL2
110#elif defined(TUYA_REDUCE_BIN) && (TUYA_REDUCE_BIN >= TUYA_REDUCE_BIN_LEVEL2)
111#define PR_TRACE(fmt, ...)
112#define PR_TRACE_ENTER()
113#define PR_TRACE_LEAVE()
114#define MPR_TRACE(module,fmt, ...)
115#define PR_DEBUG(fmt, ...) SAK_PRINT_DEBUG_LOG(fmt, ##__VA_ARGS__)
116#define MPR_DEBUG(module,fmt, ...) SAK_PRINT_LOG(module,TY_LOG_LEVEL_DEBUG, fmt, ##__VA_ARGS__)
117#else
118#define PR_TRACE(fmt, ...) SAK_PRINT_TRACE_LOG(fmt, ##__VA_ARGS__)
119#define PR_TRACE_ENTER() PR_TRACE("enter [%s]", (const char*)__func__)
120#define PR_TRACE_LEAVE() PR_TRACE("leave [%s]", (const char*)__func__)
121#define MPR_TRACE(module,fmt, ...) SAK_PRINT_LOG(module,TY_LOG_LEVEL_TRACE, fmt, ##__VA_ARGS__)
122#define PR_DEBUG(fmt, ...) SAK_PRINT_DEBUG_LOG(fmt, ##__VA_ARGS__)
123#define MPR_DEBUG(module,fmt, ...) SAK_PRINT_LOG(module,TY_LOG_LEVEL_DEBUG, fmt, ##__VA_ARGS__)
124#endif
125
126// log interface for user
127#define PR_ERR(fmt, ...) SAK_PRINT_ERR_LOG(fmt, ##__VA_ARGS__)
128#define PR_WARN(fmt, ...) SAK_PRINT_WARN_LOG(fmt, ##__VA_ARGS__)
129#define PR_NOTICE(fmt, ...) SAK_PRINT_NOTICE_LOG(fmt, ##__VA_ARGS__)
130#define PR_INFO(fmt, ...) SAK_PRINT_INFO_LOG(fmt, ##__VA_ARGS__)
131
132//used for auto test
133#define PR_AUTOTEST PR_NOTICE
134
135// set log level
136#define SET_PR_DEBUG_LEVEL(level) SetLogManageAttr(level)
137
138// log output interface with module name
139#define MPR_ERR(module,fmt, ...) SAK_PRINT_LOG(module,TY_LOG_LEVEL_ERR, fmt, ##__VA_ARGS__)
140#define MPR_WARN(module,fmt, ...) SAK_PRINT_LOG(module,TY_LOG_LEVEL_WARN, fmt, ##__VA_ARGS__)
141#define MPR_NOTICE(module,fmt, ...) SAK_PRINT_LOG(module,TY_LOG_LEVEL_NOTICE, fmt, ##__VA_ARGS__)
142#define MPR_INFO(module,fmt, ...) SAK_PRINT_LOG(module,TY_LOG_LEVEL_INFO, fmt, ##__VA_ARGS__)
143
144#if defined(TUYA_REDUCE_BIN) && (TUYA_REDUCE_BIN >= TUYA_REDUCE_BIN_LEVEL3)
145#define PR_DEBUG_RAW(fmt, ...)
146#else
147#if defined(TUYA_IOT_DEBUG) && (TUYA_IOT_DEBUG==1)
148#define PR_DEBUG_RAW(fmt, ...) PrintLogRaw(fmt, ##__VA_ARGS__)
149#else
150#define PR_DEBUG_RAW(fmt, ...)
151#endif
152#endif
153
154#ifdef __cplusplus
155}
156#endif /* __cplusplus */
157
158#endif