truncate log MQTT contents when they are too long and remove all newline characters in logfile writes

This commit is contained in:
CaCO3
2022-10-28 23:42:04 +02:00
parent 0867dcc6da
commit fc24db7d59
2 changed files with 8 additions and 0 deletions

View File

@@ -4,6 +4,7 @@
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <algorithm>
#ifdef __cplusplus
extern "C" {
@@ -206,6 +207,8 @@ void ClassLogFile::WriteToFile(esp_log_level_t level, std::string info, bool _ti
strftime(buffer, 30, logfile.c_str(), timeinfo);
std::string logpath = logroot + "/" + buffer;
std::replace(info.begin(), info.end(), '\n', ' '); // Replace all newline characters
WriteToDedicatedFile(logpath, level, info, _time);
ESP_LOG_LEVEL(level, TAG, "%s", info.c_str());
}

View File

@@ -49,6 +49,11 @@ bool MQTTPublish(std::string _key, std::string _content, int retained_flag) {
}
}
if (_content.length() > 80) { // Truncate message if too long
_content.resize(80);
_content.append("..");
}
zw = "MQTT - Published topic: " + _key + ", content: " + _content + " (msg_id=" + std::to_string(msg_id) + ")";
LogFile.WriteToFile(ESP_LOG_DEBUG, zw);