Added Set Log Level Commands

This commit is contained in:
2025-10-23 09:34:44 +03:00
parent 470d7bfacc
commit d1835beff5
7 changed files with 199 additions and 9 deletions

View File

@@ -99,6 +99,11 @@ bool ConfigManager::begin() {
LOG_INFO("ConfigManager: Creating default clock state file");
saveClockState();
}
if (!loadGeneralConfig()) {
LOG_INFO("ConfigManager: Creating default general config file");
saveGeneralConfig();
}
LOG_INFO("ConfigManager: Initialization complete - UID: %s, Hostname: %s",
deviceConfig.deviceUID.c_str(), networkConfig.hostname.c_str());
@@ -1000,3 +1005,77 @@ String ConfigManager::getAllSettingsAsJson() const {
serializeJson(doc, output);
return output;
}
// ═══════════════════════════════════════════════════════════════════════════════
// GENERAL CONFIGURATION - LOG LEVELS
// ═══════════════════════════════════════════════════════════════════════════════
bool ConfigManager::setSerialLogLevel(uint8_t level) {
if (level > 5) { // Max level is VERBOSE (5)
LOG_WARNING("ConfigManager: Invalid serial log level %d, valid range is 0-5", level);
return false;
}
generalConfig.serialLogLevel = level;
LOG_INFO("ConfigManager: Serial log level set to %d", level);
return true;
}
bool ConfigManager::setSdLogLevel(uint8_t level) {
if (level > 5) { // Max level is VERBOSE (5)
LOG_WARNING("ConfigManager: Invalid SD log level %d, valid range is 0-5", level);
return false;
}
generalConfig.sdLogLevel = level;
LOG_INFO("ConfigManager: SD log level set to %d", level);
return true;
}
bool ConfigManager::loadGeneralConfig() {
if (!ensureSDCard()) return false;
File file = SD.open("/settings/generalConfig.json", FILE_READ);
if (!file) {
LOG_WARNING("ConfigManager: General config file not found - using defaults");
return false;
}
StaticJsonDocument<256> doc;
DeserializationError error = deserializeJson(doc, file);
file.close();
if (error) {
LOG_ERROR("ConfigManager: Failed to parse general config from SD: %s", error.c_str());
return false;
}
if (doc.containsKey("serialLogLevel")) {
generalConfig.serialLogLevel = doc["serialLogLevel"].as<uint8_t>();
}
if (doc.containsKey("sdLogLevel")) {
generalConfig.sdLogLevel = doc["sdLogLevel"].as<uint8_t>();
}
LOG_INFO("ConfigManager: General config loaded - Serial log level: %d, SD log level: %d",
generalConfig.serialLogLevel, generalConfig.sdLogLevel);
return true;
}
bool ConfigManager::saveGeneralConfig() {
if (!ensureSDCard()) return false;
StaticJsonDocument<256> doc;
doc["serialLogLevel"] = generalConfig.serialLogLevel;
doc["sdLogLevel"] = generalConfig.sdLogLevel;
char buffer[256];
size_t len = serializeJson(doc, buffer, sizeof(buffer));
if (len == 0 || len >= sizeof(buffer)) {
LOG_ERROR("ConfigManager: Failed to serialize general config JSON");
return false;
}
saveFileToSD("/settings", "generalConfig.json", buffer);
LOG_INFO("ConfigManager: General config saved");
return true;
}