mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
Merge branch 'feature/esp_log_level_get_pr6573' into 'master'
log: Add esp_log_level_get() function (PR) Closes IDFGH-4770 See merge request espressif/esp-idf!13881
This commit is contained in:
commit
e20ccf4846
@ -71,6 +71,16 @@ extern esp_log_level_t esp_log_default_level;
|
|||||||
*/
|
*/
|
||||||
void esp_log_level_set(const char* tag, esp_log_level_t level);
|
void esp_log_level_set(const char* tag, esp_log_level_t level);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get log level for given tag, can be used to avoid expensive log statements
|
||||||
|
*
|
||||||
|
* @param tag Tag of the log to query current level. Must be a non-NULL zero terminated
|
||||||
|
* string.
|
||||||
|
*
|
||||||
|
* @return The current log level for the given tag
|
||||||
|
*/
|
||||||
|
esp_log_level_t esp_log_level_get(const char* tag);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Set function used to output log entries
|
* @brief Set function used to output log entries
|
||||||
*
|
*
|
||||||
|
@ -141,6 +141,35 @@ void esp_log_level_set(const char *tag, esp_log_level_t level)
|
|||||||
esp_log_impl_unlock();
|
esp_log_impl_unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Common code for getting the log level from cache, esp_log_impl_lock()
|
||||||
|
should be called before calling this function. The function unlocks,
|
||||||
|
as indicated in the name.
|
||||||
|
*/
|
||||||
|
static esp_log_level_t s_log_level_get_and_unlock(const char *tag)
|
||||||
|
{
|
||||||
|
esp_log_level_t level_for_tag;
|
||||||
|
// Look for the tag in cache first, then in the linked list of all tags
|
||||||
|
if (!get_cached_log_level(tag, &level_for_tag)) {
|
||||||
|
if (!get_uncached_log_level(tag, &level_for_tag)) {
|
||||||
|
level_for_tag = esp_log_default_level;
|
||||||
|
}
|
||||||
|
add_to_cache(tag, level_for_tag);
|
||||||
|
#ifdef LOG_BUILTIN_CHECKS
|
||||||
|
++s_log_cache_misses;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
esp_log_impl_unlock();
|
||||||
|
|
||||||
|
return level_for_tag;
|
||||||
|
}
|
||||||
|
|
||||||
|
esp_log_level_t esp_log_level_get(const char *tag)
|
||||||
|
{
|
||||||
|
esp_log_impl_lock();
|
||||||
|
return s_log_level_get_and_unlock(tag);
|
||||||
|
}
|
||||||
|
|
||||||
void clear_log_level_list(void)
|
void clear_log_level_list(void)
|
||||||
{
|
{
|
||||||
uncached_tag_entry_t *it;
|
uncached_tag_entry_t *it;
|
||||||
@ -163,18 +192,7 @@ void esp_log_writev(esp_log_level_t level,
|
|||||||
if (!esp_log_impl_lock_timeout()) {
|
if (!esp_log_impl_lock_timeout()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
esp_log_level_t level_for_tag;
|
esp_log_level_t level_for_tag = s_log_level_get_and_unlock(tag);
|
||||||
// Look for the tag in cache first, then in the linked list of all tags
|
|
||||||
if (!get_cached_log_level(tag, &level_for_tag)) {
|
|
||||||
if (!get_uncached_log_level(tag, &level_for_tag)) {
|
|
||||||
level_for_tag = esp_log_default_level;
|
|
||||||
}
|
|
||||||
add_to_cache(tag, level_for_tag);
|
|
||||||
#ifdef LOG_BUILTIN_CHECKS
|
|
||||||
++s_log_cache_misses;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
esp_log_impl_unlock();
|
|
||||||
if (!should_output(level, level_for_tag)) {
|
if (!should_output(level, level_for_tag)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user