mirror of
https://github.com/esphome/esphome.git
synced 2025-10-31 23:21:54 +00:00
[logger] Improve level validation errors (#11589)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -173,14 +173,34 @@ def uart_selection(value):
|
|||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
|
|
||||||
def validate_local_no_higher_than_global(value):
|
def validate_local_no_higher_than_global(config):
|
||||||
global_level = LOG_LEVEL_SEVERITY.index(value[CONF_LEVEL])
|
global_level = config[CONF_LEVEL]
|
||||||
for tag, level in value.get(CONF_LOGS, {}).items():
|
global_level_index = LOG_LEVEL_SEVERITY.index(global_level)
|
||||||
if LOG_LEVEL_SEVERITY.index(level) > global_level:
|
errs = []
|
||||||
raise cv.Invalid(
|
for tag, level in config.get(CONF_LOGS, {}).items():
|
||||||
f"The configured log level for {tag} ({level}) must be no more severe than the global log level {value[CONF_LEVEL]}."
|
if LOG_LEVEL_SEVERITY.index(level) > global_level_index:
|
||||||
|
errs.append(
|
||||||
|
cv.Invalid(
|
||||||
|
f"The configured log level for {tag} ({level}) must not be less severe than the global log level ({global_level})",
|
||||||
|
[CONF_LOGS, tag],
|
||||||
|
)
|
||||||
)
|
)
|
||||||
return value
|
if errs:
|
||||||
|
raise cv.MultipleInvalid(errs)
|
||||||
|
return config
|
||||||
|
|
||||||
|
|
||||||
|
def validate_initial_no_higher_than_global(config):
|
||||||
|
if initial_level := config.get(CONF_INITIAL_LEVEL):
|
||||||
|
global_level = config[CONF_LEVEL]
|
||||||
|
if LOG_LEVEL_SEVERITY.index(initial_level) > LOG_LEVEL_SEVERITY.index(
|
||||||
|
global_level
|
||||||
|
):
|
||||||
|
raise cv.Invalid(
|
||||||
|
f"The initial log level ({initial_level}) must not be less severe than the global log level ({global_level})",
|
||||||
|
[CONF_INITIAL_LEVEL],
|
||||||
|
)
|
||||||
|
return config
|
||||||
|
|
||||||
|
|
||||||
Logger = logger_ns.class_("Logger", cg.Component)
|
Logger = logger_ns.class_("Logger", cg.Component)
|
||||||
@@ -263,6 +283,7 @@ CONFIG_SCHEMA = cv.All(
|
|||||||
}
|
}
|
||||||
).extend(cv.COMPONENT_SCHEMA),
|
).extend(cv.COMPONENT_SCHEMA),
|
||||||
validate_local_no_higher_than_global,
|
validate_local_no_higher_than_global,
|
||||||
|
validate_initial_no_higher_than_global,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user