From 81b407887114be6b72ce7d806836237ab73a8bf7 Mon Sep 17 00:00:00 2001 From: Jesse Hills <3060199+jesserockz@users.noreply.github.com> Date: Wed, 23 Nov 2022 22:42:20 +1300 Subject: [PATCH] Don't allow debug component if you don't have at least debug logging level (#4076) --- esphome/components/debug/__init__.py | 26 ++++++++++++++++---- esphome/components/debug/debug_component.cpp | 6 ----- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/esphome/components/debug/__init__.py b/esphome/components/debug/__init__.py index ff9b9c5314..223c3c8df1 100644 --- a/esphome/components/debug/__init__.py +++ b/esphome/components/debug/__init__.py @@ -1,11 +1,15 @@ -import esphome.config_validation as cv import esphome.codegen as cg +import esphome.config_validation as cv +import esphome.final_validate as fv +from esphome.components import logger from esphome.const import ( - CONF_ID, - CONF_DEVICE, - CONF_FREE, - CONF_FRAGMENTATION, CONF_BLOCK, + CONF_DEVICE, + CONF_FRAGMENTATION, + CONF_FREE, + CONF_ID, + CONF_LEVEL, + CONF_LOGGER, CONF_LOOP_TIME, ) @@ -39,6 +43,18 @@ CONFIG_SCHEMA = cv.Schema( ).extend(cv.polling_component_schema("60s")) +def _final_validate(_): + logger_conf = fv.full_config.get()[CONF_LOGGER] + severity = logger.LOG_LEVEL_SEVERITY.index(logger_conf[CONF_LEVEL]) + if severity < logger.LOG_LEVEL_SEVERITY.index("DEBUG"): + raise cv.Invalid( + "The debug component requires the logger to be at least at DEBUG level" + ) + + +FINAL_VALIDATE_SCHEMA = _final_validate + + async def to_code(config): var = cg.new_Pvariable(config[CONF_ID]) await cg.register_component(var, config) diff --git a/esphome/components/debug/debug_component.cpp b/esphome/components/debug/debug_component.cpp index a594dc7a50..c1ede684e6 100644 --- a/esphome/components/debug/debug_component.cpp +++ b/esphome/components/debug/debug_component.cpp @@ -41,12 +41,6 @@ void DebugComponent::dump_config() { std::string reset_reason; device_info.reserve(256); -#ifndef ESPHOME_LOG_HAS_DEBUG - ESP_LOGE(TAG, "Debug Component requires debug log level!"); - this->status_set_error(); - return; -#endif - ESP_LOGCONFIG(TAG, "Debug component:"); #ifdef USE_TEXT_SENSOR LOG_TEXT_SENSOR(" ", "Device info", this->device_info_);