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);
|
||||
|
||||
/**
|
||||
* @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
|
||||
*
|
||||
|
@ -141,6 +141,35 @@ void esp_log_level_set(const char *tag, esp_log_level_t level)
|
||||
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)
|
||||
{
|
||||
uncached_tag_entry_t *it;
|
||||
@ -163,18 +192,7 @@ void esp_log_writev(esp_log_level_t level,
|
||||
if (!esp_log_impl_lock_timeout()) {
|
||||
return;
|
||||
}
|
||||
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();
|
||||
esp_log_level_t level_for_tag = s_log_level_get_and_unlock(tag);
|
||||
if (!should_output(level, level_for_tag)) {
|
||||
return;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user