ESPHome 2025.12.1
Loading...
Searching...
No Matches
logger_level_select.h
Go to the documentation of this file.
1#pragma once
2
6
7namespace esphome::logger {
8class LoggerLevelSelect final : public Component,
9 public select::Select,
10 public Parented<Logger>,
11 public LoggerLevelListener {
12 public:
13 void setup() override;
14 void control(size_t index) override;
15
16 // LoggerLevelListener interface
17 void on_log_level_change(uint8_t level) override;
18
19 protected:
20 // Convert log level to option index (skip CONFIG at level 4)
21 static uint8_t level_to_index(uint8_t level) { return (level > ESPHOME_LOG_LEVEL_CONFIG) ? level - 1 : level; }
22 // Convert option index to log level (skip CONFIG at level 4)
23 static uint8_t index_to_level(uint8_t index) { return (index >= ESPHOME_LOG_LEVEL_CONFIG) ? index + 1 : index; }
24};
25} // namespace esphome::logger
Helper class to easily give an object a parent of type T.
Definition helpers.h:932
Interface for receiving log level changes without std::function overhead.
Definition logger.h:79
void on_log_level_change(uint8_t level) override
static uint8_t level_to_index(uint8_t level)
static uint8_t index_to_level(uint8_t index)
void control(size_t index) override
Base-class for all selects.
Definition select.h:30