From 5553a13cc01fa4140472cac73a7cae0d6dd3c518 Mon Sep 17 00:00:00 2001 From: Yurii Date: Tue, 15 Oct 2024 04:07:00 +0300 Subject: [PATCH] feat: added log level setting --- platformio.ini | 2 +- secrets.default.ini | 2 +- src/MainTask.h | 11 +++++------ src/MqttTask.h | 2 +- src/PortalTask.h | 2 +- src/Settings.h | 2 +- src/defines.h | 4 ++-- src/main.cpp | 4 +++- src/utils.h | 10 +++++----- src_data/locales/en.json | 7 ++----- src_data/locales/ru.json | 7 ++----- src_data/pages/settings.html | 35 +++++++++++++++++++++++++---------- src_data/scripts/utils.js | 11 +++++++++++ 13 files changed, 60 insertions(+), 39 deletions(-) diff --git a/platformio.ini b/platformio.ini index 54edde4..6955374 100644 --- a/platformio.ini +++ b/platformio.ini @@ -37,7 +37,7 @@ build_flags = -D BUILD_ENV='"$PIOENV"' -D USE_SERIAL=${secrets.use_serial} -D USE_TELNET=${secrets.use_telnet} - -D DEBUG_BY_DEFAULT=${secrets.debug} + -D DEFAULT_LOG_LEVEL=${secrets.log_level} -D DEFAULT_HOSTNAME='"${secrets.hostname}"' -D DEFAULT_AP_SSID='"${secrets.ap_ssid}"' -D DEFAULT_AP_PASSWORD='"${secrets.ap_password}"' diff --git a/secrets.default.ini b/secrets.default.ini index 88b290a..24aa295 100644 --- a/secrets.default.ini +++ b/secrets.default.ini @@ -1,7 +1,7 @@ [secrets] use_serial = true use_telnet = true -debug = true +log_level = 5 hostname = opentherm ap_ssid = OpenTherm Gateway diff --git a/src/MainTask.h b/src/MainTask.h index 1462c5e..02d572e 100644 --- a/src/MainTask.h +++ b/src/MainTask.h @@ -99,11 +99,10 @@ protected: tMqtt->disable(); } - if ( Log.getLevel() != TinyLogger::Level::INFO && !settings.system.debug ) { - Log.setLevel(TinyLogger::Level::INFO); - - } else if ( Log.getLevel() != TinyLogger::Level::VERBOSE && settings.system.debug ) { - Log.setLevel(TinyLogger::Level::VERBOSE); + if (settings.system.logLevel >= TinyLogger::Level::SILENT && settings.system.logLevel <= TinyLogger::Level::VERBOSE) { + if (Log.getLevel() != settings.system.logLevel) { + Log.setLevel(static_cast(settings.system.logLevel)); + } } } else { @@ -160,7 +159,7 @@ protected: this->restartSignalTime = millis(); } - if (!settings.system.debug) { + if (settings.system.logLevel < TinyLogger::Level::VERBOSE) { return; } diff --git a/src/MqttTask.h b/src/MqttTask.h index 3025d14..de6023d 100644 --- a/src/MqttTask.h +++ b/src/MqttTask.h @@ -270,7 +270,7 @@ protected: return; } - if (settings.system.debug) { + if (settings.system.logLevel >= TinyLogger::Level::TRACE) { Log.strace(FPSTR(L_MQTT_MSG), F("Topic: %s\r\n> "), topic); if (Log.lock()) { for (size_t i = 0; i < length; i++) { diff --git a/src/PortalTask.h b/src/PortalTask.h index 2e43bae..d8449e7 100644 --- a/src/PortalTask.h +++ b/src/PortalTask.h @@ -1,5 +1,5 @@ #define PORTAL_CACHE_TIME "max-age=86400" -#define PORTAL_CACHE settings.system.debug ? nullptr : PORTAL_CACHE_TIME +#define PORTAL_CACHE (settings.system.logLevel >= TinyLogger::Level::TRACE ? nullptr : PORTAL_CACHE_TIME) #ifdef ARDUINO_ARCH_ESP8266 #include #include diff --git a/src/Settings.h b/src/Settings.h index f51d22d..d40b6de 100644 --- a/src/Settings.h +++ b/src/Settings.h @@ -24,7 +24,7 @@ struct NetworkSettings { struct Settings { struct { - bool debug = DEBUG_BY_DEFAULT; + uint8_t logLevel = DEFAULT_LOG_LEVEL; struct { bool enable = USE_SERIAL; diff --git a/src/defines.h b/src/defines.h index 0c8d158..2d0ad48 100644 --- a/src/defines.h +++ b/src/defines.h @@ -62,8 +62,8 @@ #define DEFAULT_STA_PASSWORD "" #endif -#ifndef DEBUG_BY_DEFAULT - #define DEBUG_BY_DEFAULT false +#ifndef DEFAULT_LOG_LEVEL + #define DEFAULT_LOG_LEVEL TinyLogger::Level::VERBOSE #endif #ifndef DEFAULT_STATUS_LED_GPIO diff --git a/src/main.cpp b/src/main.cpp index 083a14a..583eb32 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -129,7 +129,9 @@ void setup() { Log.addStream(telnetStream); } - Log.setLevel(settings.system.debug ? TinyLogger::Level::VERBOSE : TinyLogger::Level::INFO); + if (settings.system.logLevel >= TinyLogger::Level::SILENT && settings.system.logLevel <= TinyLogger::Level::VERBOSE) { + Log.setLevel(static_cast(settings.system.logLevel)); + } // network network = (new NetworkMgr) diff --git a/src/utils.h b/src/utils.h index 742ac28..d72e92c 100644 --- a/src/utils.h +++ b/src/utils.h @@ -326,7 +326,7 @@ bool jsonToNetworkSettings(const JsonVariantConst src, NetworkSettings& dst) { void settingsToJson(const Settings& src, JsonVariant dst, bool safe = false) { if (!safe) { - dst["system"]["debug"] = src.system.debug; + dst["system"]["logLevel"] = static_cast(src.system.logLevel); dst["system"]["serial"]["enable"] = src.system.serial.enable; dst["system"]["serial"]["baudrate"] = src.system.serial.baudrate; dst["system"]["telnet"]["enable"] = src.system.telnet.enable; @@ -459,11 +459,11 @@ bool jsonToSettings(const JsonVariantConst src, Settings& dst, bool safe = false if (!safe) { // system - if (src["system"]["debug"].is()) { - bool value = src["system"]["debug"].as(); + if (!src["system"]["logLevel"].isNull()) { + uint8_t value = src["system"]["logLevel"].as(); - if (value != dst.system.debug) { - dst.system.debug = value; + if (value != dst.system.logLevel && value >= TinyLogger::Level::SILENT && value <= TinyLogger::Level::VERBOSE) { + dst.system.logLevel = value; changed = true; } } diff --git a/src_data/locales/en.json b/src_data/locales/en.json index 3ac0b97..baa1c55 100644 --- a/src_data/locales/en.json +++ b/src_data/locales/en.json @@ -198,13 +198,10 @@ "metric": "Metric (celsius, liters, bar)", "imperial": "Imperial (fahrenheit, gallons, psi)", "statusLedGpio": "Status LED GPIO", - "debug": "Debug mode", + "logLevel": "Log level", "serial": { "enable": "Enable Serial port", - "baud": { - "title": "Serial port baud rate", - "note": "Available: 9600, 19200, 38400, 57600, 74880, 115200" - } + "baud": "Serial port baud rate" }, "telnet": { "enable": "Enable Telnet", diff --git a/src_data/locales/ru.json b/src_data/locales/ru.json index 7037bbb..cb58765 100644 --- a/src_data/locales/ru.json +++ b/src_data/locales/ru.json @@ -198,13 +198,10 @@ "metric": "Метрическая (цильсии, литры, бары)", "imperial": "Imperial (фаренгейты, галлоны, psi)", "statusLedGpio": "Статус LED GPIO", - "debug": "Отладка", + "logLevel": "Уровень логирования", "serial": { "enable": "Вкл. Serial порт", - "baud": { - "title": "Скорость Serial порта", - "note": "Доступно: 9600, 19200, 38400, 57600, 74880, 115200" - } + "baud": "Скорость Serial порта" }, "telnet": { "enable": "Вкл. Telnet", diff --git a/src_data/pages/settings.html b/src_data/pages/settings.html index cd684ca..3baf47e 100644 --- a/src_data/pages/settings.html +++ b/src_data/pages/settings.html @@ -94,11 +94,6 @@
settings.section.diag - - + +