Select one of the symbols to view example projects that use it.
 
Outline
#include <stdint.h>
#include "sdkconfig.h"
esp_log_level_t
#define LOG_LOCAL_LEVEL
#define LOG_LOCAL_LEVEL
#define _ESP_LOG_ENABLED
#define _ESP_LOG_EARLY_ENABLED
#define _ESP_LOG_ENABLED
#define _ESP_LOG_ENABLED
#define _ESP_LOG_EARLY_ENABLED
esp_log_get_default_level()
esp_log_level_set(const char *, esp_log_level_t);
esp_log_level_get(const char *);
Files
loading...
SourceVuESP-IDF Framework and ExamplesESP-IDFcomponents/log/include/esp_log_level.h
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* * SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 *//* ... */ #pragma once #include <stdint.h> #include "sdkconfig.h" #ifdef __cplusplus extern "C" { #endif /** * @brief Log level *//* ... */ typedef enum { ESP_LOG_NONE = 0, /*!< No log output */ ESP_LOG_ERROR = 1, /*!< Critical errors, software module can not recover on its own */ ESP_LOG_WARN = 2, /*!< Error conditions from which recovery measures have been taken */ ESP_LOG_INFO = 3, /*!< Information messages which describe normal flow of events */ ESP_LOG_DEBUG = 4, /*!< Extra information which is not necessary for normal use (values, pointers, sizes, etc). */ ESP_LOG_VERBOSE = 5, /*!< Bigger chunks of debugging information, or frequent messages which can potentially flood the output. */ ESP_LOG_MAX = 6, /*!< Number of levels supported */ }{ ... } esp_log_level_t; /** @cond */ // LOG_LOCAL_LEVEL controls what log levels are included in the binary. #ifndef LOG_LOCAL_LEVEL #if BOOTLOADER_BUILD #define LOG_LOCAL_LEVEL CONFIG_BOOTLOADER_LOG_LEVEL #else // !BOOTLOADER_BUILD #define LOG_LOCAL_LEVEL CONFIG_LOG_MAXIMUM_LEVEL #endif // !BOOTLOADER_BUILD/* ... */ #endif // LOG_LOCAL_LEVEL #ifdef NON_OS_BUILD #define _ESP_LOG_ENABLED(log_level) (LOG_LOCAL_LEVEL >= (log_level)) #define _ESP_LOG_EARLY_ENABLED(log_level) _ESP_LOG_ENABLED(log_level) /* ... */ #else // !NON_OS_BUILD #if CONFIG_LOG_MASTER_LEVEL #define _ESP_LOG_ENABLED(log_level) (esp_log_get_level_master() >= (log_level) && LOG_LOCAL_LEVEL >= (log_level)) #else // !CONFIG_LOG_MASTER_LEVEL #define _ESP_LOG_ENABLED(log_level) (LOG_LOCAL_LEVEL >= (log_level)) #endif // !CONFIG_LOG_MASTER_LEVEL /* For early log, there is no log tag filtering. So we want to log only if both the LOG_LOCAL_LEVEL and the currently configured min log level are higher than the log level *//* ... */ #define _ESP_LOG_EARLY_ENABLED(log_level) (LOG_LOCAL_LEVEL >= (log_level) && esp_log_get_default_level() >= (log_level)) /* ... */ #endif // !NON_OS_BUILD /** @endcond */ /** * @brief Get the default log level. * * This function returns the default log level. * The default log level is used by the definition of ESP_LOGx macros and * can be overridden for specific tags using `esp_log_level_set("*", level)`. * If CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=n, changing the default log level is not possible. * * @return The default log level. *//* ... */ __attribute__((always_inline)) static inline esp_log_level_t esp_log_get_default_level(void) { #if CONFIG_LOG_DYNAMIC_LEVEL_CONTROL extern esp_log_level_t esp_log_default_level; return esp_log_default_level;/* ... */ #else return (esp_log_level_t) CONFIG_LOG_DEFAULT_LEVEL; #endif }{ ... } #if defined(CONFIG_LOG_MASTER_LEVEL) || __DOXYGEN__ /** * @brief Master log level. * * Optional master log level to check against for ESP_LOGx macros before calling * esp_log_write. Allows one to set a higher CONFIG_LOG_MAXIMUM_LEVEL but not * impose a performance hit during normal operation (only when instructed). An * application may set esp_log_set_level_master(level) to globally enforce a * maximum log level. ESP_LOGx macros above this level will be skipped immediately, * rather than calling esp_log or esp_log_write and doing a cache hit. * * @note The tradeoff is increased application size. * * @param level Master log level *//* ... */ void esp_log_set_level_master(esp_log_level_t level); /** * @brief Returns master log level. * @return Master log level *//* ... */ esp_log_level_t esp_log_get_level_master(void); /* ... */ #endif // CONFIG_LOG_MASTER_LEVEL /** * @brief Set log level for given tag * * If logging for given component has already been enabled, changes previous setting. * * @note Note that this function can not raise log level above the level set using * CONFIG_LOG_MAXIMUM_LEVEL setting in menuconfig. * * To raise log level above the default one for a given file, define * LOG_LOCAL_LEVEL to one of the ESP_LOG_* values, before including esp_log.h in this file. * * If CONFIG_LOG_DYNAMIC_LEVEL_CONTROL is not selected the static (no-op) implementation of log level is used. * Changing the log level is not possible, esp_log_level_set does not work. * * @param tag Tag of the log entries to enable. Must be a non-NULL zero terminated string. * Value "*" resets log level for all tags to the given value. * If the tag is NULL then a silent return happens. * @param level Selects log level to enable. * Only logs at this and lower verbosity levels will be shown. *//* ... */ void esp_log_level_set(const char* tag, esp_log_level_t level); /** * @brief Get log level for a given tag, can be used to avoid expensive log statements * * If CONFIG_LOG_DYNAMIC_LEVEL_CONTROL is not selected the static (no-op) implementation of log level is used. * Changing the log level is not possible, esp_log_level_set does not work. This function returns the default log level. * * @param tag Tag of the log to query current level. Must be a zero terminated string. * If tag is NULL then the default log level is returned (see esp_log_get_default_level()). * @return The current log level for the given tag. *//* ... */ esp_log_level_t esp_log_level_get(const char* tag); #ifdef __cplusplus }{...} #endif
Details