esp_log: Implemented esp_log_level_get(TAG)

Closes https://github.com/espressif/esp-idf/pull/6573
pull/6904/head
0xFEEDC0DE64 2021-02-18 22:43:17 +01:00 zatwierdzone przez Angus Gratton
rodzic 0f1b24891b
commit fc85f8a47d
2 zmienionych plików z 29 dodań i 0 usunięć

Wyświetl plik

@ -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);
/**
* @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
*

Wyświetl plik

@ -141,6 +141,25 @@ void esp_log_level_set(const char *tag, esp_log_level_t level)
esp_log_impl_unlock();
}
esp_log_level_t esp_log_level_get(const char* tag)
{
esp_log_impl_lock();
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;
}
void clear_log_level_list(void)
{
uncached_tag_entry_t *it;