mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 00:09:51 +03:00
limit weblog buffer on low heap, use deque
This commit is contained in:
@@ -110,6 +110,10 @@ WebLogService::QueuedLogMessage::QueuedLogMessage(unsigned long id, std::shared_
|
|||||||
}
|
}
|
||||||
|
|
||||||
void WebLogService::operator<<(std::shared_ptr<uuid::log::Message> message) {
|
void WebLogService::operator<<(std::shared_ptr<uuid::log::Message> message) {
|
||||||
|
if (ESP.getMaxAllocHeap() < 20480) {
|
||||||
|
maximum_log_messages(maximum_log_messages_ > 25 ? maximum_log_messages_ - 25 : 10);
|
||||||
|
// EMSESP::logger().warning("Low memory: WebLog buffer reduced to %d entries", maximum_log_messages_);
|
||||||
|
}
|
||||||
if (log_messages_.size() >= maximum_log_messages_) {
|
if (log_messages_.size() >= maximum_log_messages_) {
|
||||||
log_messages_.pop_front();
|
log_messages_.pop_front();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,13 +68,13 @@ class WebLogService : public uuid::log::Handler {
|
|||||||
|
|
||||||
AsyncCallbackJsonWebHandler setValues_; // for POSTs
|
AsyncCallbackJsonWebHandler setValues_; // for POSTs
|
||||||
|
|
||||||
uint64_t last_transmit_ = 0; // Last transmit time
|
uint64_t last_transmit_ = 0; // Last transmit time
|
||||||
size_t maximum_log_messages_ = MAX_LOG_MESSAGES; // Maximum number of log messages to buffer before they are output
|
size_t maximum_log_messages_ = MAX_LOG_MESSAGES; // Maximum number of log messages to buffer before they are output
|
||||||
unsigned long log_message_id_ = 0; // The next identifier to use for queued log messages
|
unsigned long log_message_id_ = 0; // The next identifier to use for queued log messages
|
||||||
unsigned long log_message_id_tail_ = 0; // last event shown on the screen after fetch
|
unsigned long log_message_id_tail_ = 0; // last event shown on the screen after fetch
|
||||||
std::list<QueuedLogMessage> log_messages_; // Queued log messages, in the order they were received
|
std::deque<QueuedLogMessage> log_messages_; // Queued log messages, in the order they were received
|
||||||
time_t time_offset_ = 0;
|
time_t time_offset_ = 0;
|
||||||
bool compact_ = true;
|
bool compact_ = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace emsesp
|
} // namespace emsesp
|
||||||
|
|||||||
Reference in New Issue
Block a user