mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-09 01:09:51 +03:00
use messagetime in WebLogService::show()
This commit is contained in:
@@ -124,18 +124,6 @@ void WebLogService::operator<<(std::shared_ptr<uuid::log::Message> message) {
|
||||
}
|
||||
|
||||
log_messages_.emplace_back(++log_message_id_, std::move(message));
|
||||
|
||||
EMSESP::esp32React.getNTPSettingsService()->read([&](NTPSettings & settings) {
|
||||
if (!settings.enabled || (time(nullptr) < 1500000000L)) {
|
||||
time_offset_ = 0;
|
||||
} else {
|
||||
uint32_t offset = time(nullptr) - uuid::get_uptime_sec();
|
||||
// if NTP is more that 1 sec apart, correct setting
|
||||
if (time_offset_ < offset - 1 || time_offset_ > offset + 1) {
|
||||
time_offset_ = offset;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// dumps out the contents of log buffer to shell console
|
||||
@@ -151,7 +139,8 @@ void WebLogService::show(Shell & shell) {
|
||||
for (const auto & message : log_messages_) {
|
||||
log_message_id_tail_ = message.id_;
|
||||
|
||||
shell.print(uuid::log::format_timestamp_ms(message.content_->uptime_ms, 3));
|
||||
char time_string[26];
|
||||
shell.print(messagetime(time_string, message.content_->uptime_ms, sizeof(time_string)));
|
||||
shell.printf(" %c %lu: [%s] ", uuid::log::format_level_char(message.content_->level), message.id_, message.content_->name);
|
||||
|
||||
if ((message.content_->level == uuid::log::Level::ERR) || (message.content_->level == uuid::log::Level::WARNING)) {
|
||||
@@ -204,12 +193,13 @@ void WebLogService::loop() {
|
||||
|
||||
// convert time to real offset
|
||||
char * WebLogService::messagetime(char * out, const uint64_t t, const size_t bufsize) {
|
||||
if (!time_offset_) {
|
||||
time_t offset = time(nullptr) - uuid::get_uptime_sec();
|
||||
if (offset < 1500000000L) {
|
||||
strlcpy(out, uuid::log::format_timestamp_ms(t, 3).c_str(), bufsize);
|
||||
} else {
|
||||
time_t t1 = time_offset_ + t / 1000ULL;
|
||||
time_t t1 = offset + (time_t)(t / 1000);
|
||||
char timestr[bufsize];
|
||||
strftime(timestr, bufsize, "%F %T", localtime(&t1));
|
||||
strftime(timestr, bufsize, "%FT%T", localtime(&t1));
|
||||
snprintf(out, bufsize, "%s.%03d", timestr, (uint16_t)(t % 1000));
|
||||
}
|
||||
return out;
|
||||
|
||||
@@ -70,8 +70,7 @@ class WebLogService : public uuid::log::Handler {
|
||||
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
|
||||
std::deque<QueuedLogMessage> log_messages_; // Queued log messages, in the order they were received
|
||||
time_t time_offset_ = 0;
|
||||
bool compact_ = true;
|
||||
bool compact_ = true;
|
||||
};
|
||||
|
||||
} // namespace emsesp
|
||||
|
||||
Reference in New Issue
Block a user