1- // Copyright 2015-2021  Espressif Systems (Shanghai) PTE LTD 
1+ // Copyright 2015-2016  Espressif Systems (Shanghai) PTE LTD 
22// 
33// Licensed under the Apache License, Version 2.0 (the "License"); 
44// you may not use this file except in compliance with the License. 
1111// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
1212// See the License for the specific language governing permissions and 
1313// limitations under the License. 
14- 
1514#ifndef  __ARDUHAL_LOG_H__ 
1615#define  __ARDUHAL_LOG_H__ 
1716
@@ -37,6 +36,9 @@ extern "C"
3736#define  ARDUHAL_LOG_LEVEL  CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL
3837#else 
3938#define  ARDUHAL_LOG_LEVEL  CORE_DEBUG_LEVEL
39+ #ifdef  USE_ESP_IDF_LOG 
40+ #define  LOG_LOCAL_LEVEL  CORE_DEBUG_LEVEL
41+ #endif 
4042#endif 
4143
4244#ifndef  CONFIG_ARDUHAL_LOG_COLORS 
@@ -72,62 +74,101 @@ extern "C"
7274#define  ARDUHAL_LOG_RESET_COLOR 
7375#endif 
7476
77+ 
78+ 
7579const  char  *  pathToFileName (const  char  *  path );
7680int  log_printf (const  char  * fmt , ...);
7781
7882#define  ARDUHAL_SHORT_LOG_FORMAT (letter , format )  ARDUHAL_LOG_COLOR_ ## letter format ARDUHAL_LOG_RESET_COLOR "\r\n"
7983#define  ARDUHAL_LOG_FORMAT (letter , format )  ARDUHAL_LOG_COLOR_ ## letter "[" #letter "][%s:%u] %s(): " format ARDUHAL_LOG_RESET_COLOR "\r\n", pathToFileName(__FILE__), __LINE__, __FUNCTION__
8084
8185#if  ARDUHAL_LOG_LEVEL  >= ARDUHAL_LOG_LEVEL_VERBOSE 
86+ #ifndef  USE_ESP_IDF_LOG 
8287#define  log_v (format , ...) log_printf(ARDUHAL_LOG_FORMAT(V, format), ##__VA_ARGS__)
8388#define  isr_log_v (format , ...) ets_printf(ARDUHAL_LOG_FORMAT(V, format), ##__VA_ARGS__)
8489#else 
90+ #define  log_v (format , ...) do {log_to_esp(TAG, ESP_LOG_VERBOSE, format, ##__VA_ARGS__);}while(0)
91+ #define  isr_log_v (format , ...) do {ets_printf(LOG_FORMAT(V, format), esp_log_timestamp(), TAG, ##__VA_ARGS__);}while(0)
92+ #endif 
93+ #else 
8594#define  log_v (format , ...)
8695#define  isr_log_v (format , ...)
8796#endif 
8897
8998#if  ARDUHAL_LOG_LEVEL  >= ARDUHAL_LOG_LEVEL_DEBUG 
99+ #ifndef  USE_ESP_IDF_LOG 
90100#define  log_d (format , ...) log_printf(ARDUHAL_LOG_FORMAT(D, format), ##__VA_ARGS__)
91101#define  isr_log_d (format , ...) ets_printf(ARDUHAL_LOG_FORMAT(D, format), ##__VA_ARGS__)
92102#else 
103+ #define  log_d (format , ...) do {log_to_esp(TAG, ESP_LOG_DEBUG, format, ##__VA_ARGS__);}while(0)
104+ #define  isr_log_d (format , ...) do {ets_printf(LOG_FORMAT(D, format), esp_log_timestamp(), TAG, ##__VA_ARGS__);}while(0)
105+ #endif 
106+ #else 
93107#define  log_d (format , ...)
94108#define  isr_log_d (format , ...)
95109#endif 
96110
97111#if  ARDUHAL_LOG_LEVEL  >= ARDUHAL_LOG_LEVEL_INFO 
112+ #ifndef  USE_ESP_IDF_LOG 
98113#define  log_i (format , ...) log_printf(ARDUHAL_LOG_FORMAT(I, format), ##__VA_ARGS__)
99114#define  isr_log_i (format , ...) ets_printf(ARDUHAL_LOG_FORMAT(I, format), ##__VA_ARGS__)
100115#else 
116+ #define  log_i (format , ...) do {log_to_esp(TAG, ESP_LOG_INFO, format, ##__VA_ARGS__);}while(0)
117+ #define  isr_log_i (format , ...) do {ets_printf(LOG_FORMAT(I, format), esp_log_timestamp(), TAG, ##__VA_ARGS__);}while(0)
118+ #endif 
119+ #else 
101120#define  log_i (format , ...)
102121#define  isr_log_i (format , ...)
103122#endif 
104123
105124#if  ARDUHAL_LOG_LEVEL  >= ARDUHAL_LOG_LEVEL_WARN 
125+ #ifndef  USE_ESP_IDF_LOG 
106126#define  log_w (format , ...) log_printf(ARDUHAL_LOG_FORMAT(W, format), ##__VA_ARGS__)
107127#define  isr_log_w (format , ...) ets_printf(ARDUHAL_LOG_FORMAT(W, format), ##__VA_ARGS__)
108128#else 
129+ #define  log_w (format , ...) do {log_to_esp(TAG, ESP_LOG_WARN, format, ##__VA_ARGS__);}while(0)
130+ #define  isr_log_w (format , ...) do {ets_printf(LOG_FORMAT(W, format), esp_log_timestamp(), TAG, ##__VA_ARGS__);}while(0)
131+ #endif 
132+ #else 
109133#define  log_w (format , ...)
110134#define  isr_log_w (format , ...)
111135#endif 
112136
113137#if  ARDUHAL_LOG_LEVEL  >= ARDUHAL_LOG_LEVEL_ERROR 
138+ #ifndef  USE_ESP_IDF_LOG 
114139#define  log_e (format , ...) log_printf(ARDUHAL_LOG_FORMAT(E, format), ##__VA_ARGS__)
115140#define  isr_log_e (format , ...) ets_printf(ARDUHAL_LOG_FORMAT(E, format), ##__VA_ARGS__)
116141#else 
142+ #define  log_e (format , ...) do {log_to_esp(TAG, ESP_LOG_ERROR, format, ##__VA_ARGS__);}while(0)
143+ #define  isr_log_e (format , ...) do {ets_printf(LOG_FORMAT(E, format), esp_log_timestamp(), TAG, ##__VA_ARGS__);}while(0)
144+ #endif 
145+ #else 
117146#define  log_e (format , ...)
118147#define  isr_log_e (format , ...)
119148#endif 
120149
121150#if  ARDUHAL_LOG_LEVEL  >= ARDUHAL_LOG_LEVEL_NONE 
151+ #ifndef  USE_ESP_IDF_LOG 
122152#define  log_n (format , ...) log_printf(ARDUHAL_LOG_FORMAT(E, format), ##__VA_ARGS__)
123153#define  isr_log_n (format , ...) ets_printf(ARDUHAL_LOG_FORMAT(E, format), ##__VA_ARGS__)
124154#else 
155+ #define  log_n (format , ...) do {log_to_esp(TAG, ESP_LOG_ERROR, format, ##__VA_ARGS__);}while(0)
156+ #define  isr_log_n (format , ...) do {ets_printf(LOG_FORMAT(E, format), esp_log_timestamp(), TAG, ##__VA_ARGS__);}while(0)
157+ #endif 
158+ #else 
125159#define  log_n (format , ...)
126160#define  isr_log_n (format , ...)
127161#endif 
128162
129163#include  "esp_log.h" 
130164
165+ #ifdef  USE_ESP_IDF_LOG 
166+ #ifndef  TAG 
167+ #define  TAG  "ARDUINO"
168+ #endif 
169+ void  log_to_esp (char *  tag , esp_log_level_t  level , const  char *  format , ...);
170+ //#define log_n(format, ...) myLog(ESP_LOG_NONE, format, ##__VA_ARGS__) 
171+ #else 
131172#ifdef  CONFIG_ARDUHAL_ESP_LOG 
132173#undef  ESP_LOGE
133174#undef  ESP_LOGW
@@ -151,6 +192,7 @@ int log_printf(const char *fmt, ...);
151192#define  ESP_EARLY_LOGD (tag , ...)  isr_log_d(__VA_ARGS__)
152193#define  ESP_EARLY_LOGV (tag , ...)  isr_log_v(__VA_ARGS__)
153194#endif 
195+ #endif 
154196
155197#ifdef  __cplusplus 
156198}
0 commit comments