123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- // Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- #ifndef __ESP_LOG_H__
- #define __ESP_LOG_H__
- #include <stdint.h>
- #include <stdarg.h>
- #include "esp_common.h"
- //#include "ets_sys.h"
- #define CONFIG_LOG_COLORS 1
- #define CONFIG_LOG_DEFAULT_LEVEL 100
- #define CPU_CLK_FREQ 80000000
- /**
- * @brief Log level
- *
- */
- typedef enum {
- ESP_LOG_NONE, /*!< No log output */
- ESP_LOG_ERROR, /*!< Critical errors, software module can not recover on its own */
- ESP_LOG_WARN, /*!< Error conditions from which recovery measures have been taken */
- ESP_LOG_INFO, /*!< Information messages which describe normal flow of events */
- ESP_LOG_DEBUG, /*!< Extra information which is not necessary for normal use (values, pointers, sizes, etc). */
- ESP_LOG_VERBOSE /*!< Bigger chunks of debugging information, or frequent messages which can potentially flood the output. */
- } esp_log_level_t;
- /**
- * @brief Function which returns timestamp to be used in log output
- *
- * This function is used in expansion of ESP_LOGx macros.
- * In the 2nd stage bootloader, and at early application startup stage
- * this function uses CPU cycle counter as time source. Later when
- * FreeRTOS scheduler start running, it switches to FreeRTOS tick count.
- *
- * For now, we ignore millisecond counter overflow.
- *
- * @return timestamp, in milliseconds
- */
- uint32_t esp_log_timestamp(void);
- #if CONFIG_LOG_COLORS
- #define LOG_COLOR_BLACK "30"
- #define LOG_COLOR_RED "31"
- #define LOG_COLOR_GREEN "32"
- #define LOG_COLOR_BROWN "33"
- #define LOG_COLOR_BLUE "34"
- #define LOG_COLOR_PURPLE "35"
- #define LOG_COLOR_CYAN "36"
- #define LOG_COLOR(COLOR) "\033[0;" COLOR "m"
- #define LOG_BOLD(COLOR) "\033[1;" COLOR "m"
- #define LOG_RESET_COLOR "\033[0m"
- #define LOG_COLOR_E LOG_COLOR(LOG_COLOR_RED)
- #define LOG_COLOR_W LOG_COLOR(LOG_COLOR_BROWN)
- #define LOG_COLOR_I LOG_COLOR(LOG_COLOR_GREEN)
- #define LOG_COLOR_D
- #define LOG_COLOR_V
- #else //CONFIG_LOG_COLORS
- #define LOG_COLOR_E
- #define LOG_COLOR_W
- #define LOG_COLOR_I
- #define LOG_COLOR_D
- #define LOG_COLOR_V
- #define LOG_RESET_COLOR
- #endif //CONFIG_LOG_COLORS
- #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%d) %s: " format LOG_RESET_COLOR "\n"
- #define LOG_LOCAL_LEVEL ((esp_log_level_t) CONFIG_LOG_DEFAULT_LEVEL)
- #define ESP_LOGE( tag, format, ... ) if (LOG_LOCAL_LEVEL >= ESP_LOG_ERROR) { os_printf(LOG_FORMAT(E, format), esp_log_timestamp(), tag, ##__VA_ARGS__); }
- #define ESP_LOGW( tag, format, ... ) if (LOG_LOCAL_LEVEL >= ESP_LOG_WARN) { os_printf(LOG_FORMAT(W, format), esp_log_timestamp(), tag, ##__VA_ARGS__); }
- #define ESP_LOGI( tag, format, ... ) if (LOG_LOCAL_LEVEL >= ESP_LOG_INFO) { os_printf(LOG_FORMAT(I, format), esp_log_timestamp(), tag, ##__VA_ARGS__); }
- #define ESP_LOGD( tag, format, ... ) if (LOG_LOCAL_LEVEL >= ESP_LOG_DEBUG) { os_printf(LOG_FORMAT(D, format), esp_log_timestamp(), tag, ##__VA_ARGS__); }
- #define ESP_LOGV( tag, format, ... ) if (LOG_LOCAL_LEVEL >= ESP_LOG_VERBOSE) { os_printf(LOG_FORMAT(V, format), esp_log_timestamp(), tag, ##__VA_ARGS__); }
- #endif /* __ESP_LOG_H__ */
|