blob: 7a36e972d68fc310b3c88d6c2272ea2fe92c5ce8 [file] [log] [blame]
rjw1f884582022-01-06 17:20:42 +08001#ifndef __LIBLOG_H__
2#define __LIBLOG_H__
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7//Log模块是否使能
8#define LOG_ENABLE 1
9
10
11#if LOG_ENABLE
12
13#define ENABLE(X) (1<<(X))
14
15//****************************************************************************//
16//*************************User configuration start**************************//
17//****************************************************************************//
18
19typedef enum
20{
21 LOG_VERBOSE = 0, //从0开始,自行添加
22 LOG_ERROR,
23 LOG_WARNING,
24 LOG_INFO,
25 LOG_DEBUG,
26 LOG_LEVEL_MAX//不可删除
27}log_level_enum;
28
29typedef enum
30{
31 LOG_OTHERS = 0, //从0开始,自行添加
32 LOG_MQTT,
33 LOG_SPI,
34 LOG_THREADTEST_DBUS,
35 LOG_THREADHANDLE,
36 LOG_HTTP,
37 LOG_FTP,
38 LOG_TAG_MAX, //不可删除
39} log_tag_enum;
40
41
42typedef struct
43{
44 char open_log_level;
45 char open_module_log_num;
46 char open_module_log[LOG_TAG_MAX];
47}log_level_str;
48
49
50//Log等级全局使能 ENABLE(LOG_VERBOSE)添加此条件控制是否只执行优先级高的:添加则为只要在模块内调用的都打印,不添加则为执行模块优先级最高的
51#define LOG_LEVEL_ENABLE ENABLE(LOG_VERBOSE)
52//#define LOG_LEVEL_ENABLE ENABLE(LOG_VERBOSE)|ENABLE(LOG_DEBUG)|ENABLE(LOG_INFO)|ENABLE(LOG_WARNING)|ENABLE(LOG_ERROR)
53
54
55//根据Tag枚举索引排序
56static unsigned int LogTagEnableInfoTable[LOG_TAG_MAX] =
57{
58// ENABLE(LOG_VERBOSE)|ENABLE(LOG_DEBUG)|ENABLE(LOG_INFO)|ENABLE(LOG_WARNING)|ENABLE(LOG_ERROR),
59// ENABLE(LOG_VERBOSE),
60// ENABLE(LOG_VERBOSE),
61// ENABLE(LOG_WARNING),
62};
63
64const static char * LogTagNameInfoTable[LOG_TAG_MAX] =
65{
66 "OTHERS",\
67 "MQTT",\
68 "SPI",\
69 "THREADTEST_DBUS",\
70 "THREADHANDLE",\
71 "HTTP",\
72 "FTP",
73};
74
75const static char * LogLevelNameInfoTable[LOG_LEVEL_MAX] =
76{
77 "[VERBOSE]","[ERROR]","[WARNING]","[INFO]","[DEBUG]" //lt add @2021.7.22 for []
78};
79
80#endif //LOG_ENABLE
81
82void lynq_log_global_output(log_level_enum Level,const char *format,...);
83
84/*********************************************************************************************************
85** Function name: lynq_log_output
86** Description lynq_log_output
87** Input parameters: Tag:Tag类型(log_level_enum)
88 Level:Tag下打印level(log_tag_enum)
89 format:printf打印的不定长参数
90** Returned value: None
91** Created by:
92*********************************************************************************************************/
93void lynq_log_output(log_tag_enum Tag,log_level_enum Level,const char *format,...);
94
95/*********************************************************************************************************
96** Function name: lynq_update_log_output
97** Description ÖØÐ»ñÈ¡logµÈ¼¶²¢Ê¹ÆäÉúЧ
98** Input parameters: Tag:TagÀàÐÍ(log_level_enum)
99 Level:TagÏ´òÓ¡level(log_tag_enum)
100 format:printf´òÓ¡µÄ²»¶¨³¤²ÎÊý
101** Returned value: None
102** Created by:
103*********************************************************************************************************/
104void lynq_update_log_output(log_tag_enum Tag,log_level_enum Level,const char *format,...);
105
106/*********************************************************************************************************
107** Function name: lynq_fget_log_level
108** Description 读取日志配置信息
109** Input parameters: open_log_level:开启log日志等级
110 open_module_log_num:开启日志模块的个数
111 open_module_log:开启日子服务的模块
112** Returned value: 0:成功,-1:失败
113** Created by:
114*********************************************************************************************************/
115int lynq_read_store_log_deploy(log_level_str *log_level_read_level_str);
116
117/*********************************************************************************************************
118** Function name: lynq_enable_log_serve
119** Description 使能日志服务
120** Input parameters: None
121** Returned value: None
122** Created by:
123*********************************************************************************************************/
124void lynq_log_printf_output(log_tag_enum Tag,log_level_enum Level,const char *format,...);
125
126
127/********************************************************************************************************
128*********************************************************************************************************/
129
130void lynq_log_configuration_set(char *log_name,char log_data_arr);
131void lynq_log_configuration_init(char *log_name);
132
133void lynq_store_log_test(void);
134void lynq_read_set_log_test(void);
135
136#ifdef __cplusplus
137}
138#endif
139
140#endif //__LOG_H__