use messagetime in WebLogService::show()

This commit is contained in:
MichaelDvP
2025-04-25 12:16:33 +02:00
parent e3566feefb
commit 568431ada4
4 changed files with 13 additions and 24 deletions

View File

@@ -47,7 +47,7 @@
"@preact/compat": "^18.3.1", "@preact/compat": "^18.3.1",
"@preact/preset-vite": "^2.10.1", "@preact/preset-vite": "^2.10.1",
"@trivago/prettier-plugin-sort-imports": "^5.2.2", "@trivago/prettier-plugin-sort-imports": "^5.2.2",
"@types/node": "^22.15.1", "@types/node": "^22.15.2",
"@types/react": "^19.1.2", "@types/react": "^19.1.2",
"@types/react-dom": "^19.1.2", "@types/react-dom": "^19.1.2",
"concurrently": "^9.1.2", "concurrently": "^9.1.2",

View File

@@ -1408,12 +1408,12 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/node@npm:^22.15.1": "@types/node@npm:^22.15.2":
version: 22.15.1 version: 22.15.2
resolution: "@types/node@npm:22.15.1" resolution: "@types/node@npm:22.15.2"
dependencies: dependencies:
undici-types: "npm:~6.21.0" undici-types: "npm:~6.21.0"
checksum: 10c0/80bd7fff7d6f4058875feb2c980fa066266b02ffde51e794cf4b7bea5f1316c08baa135fa7cbffa677efb999b0945b2697b318e84af4563c1ab8d3392a17bf9a checksum: 10c0/39da31d5fc63b14fabd217bb8a921c4a7fc3d99f233440209f9fc2d5d736e8773f7efc65223e2fd0e8db8390b0baab9c0cd2e951c2ece8b237f07313ab3cf295
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1603,7 +1603,7 @@ __metadata:
"@preact/preset-vite": "npm:^2.10.1" "@preact/preset-vite": "npm:^2.10.1"
"@table-library/react-table-library": "npm:4.1.15" "@table-library/react-table-library": "npm:4.1.15"
"@trivago/prettier-plugin-sort-imports": "npm:^5.2.2" "@trivago/prettier-plugin-sort-imports": "npm:^5.2.2"
"@types/node": "npm:^22.15.1" "@types/node": "npm:^22.15.2"
"@types/react": "npm:^19.1.2" "@types/react": "npm:^19.1.2"
"@types/react-dom": "npm:^19.1.2" "@types/react-dom": "npm:^19.1.2"
alova: "npm:3.2.10" alova: "npm:3.2.10"

View File

@@ -124,18 +124,6 @@ void WebLogService::operator<<(std::shared_ptr<uuid::log::Message> message) {
} }
log_messages_.emplace_back(++log_message_id_, std::move(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 // 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_) { for (const auto & message : log_messages_) {
log_message_id_tail_ = message.id_; 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); 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)) { 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 // convert time to real offset
char * WebLogService::messagetime(char * out, const uint64_t t, const size_t bufsize) { 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); strlcpy(out, uuid::log::format_timestamp_ms(t, 3).c_str(), bufsize);
} else { } else {
time_t t1 = time_offset_ + t / 1000ULL; time_t t1 = offset + (time_t)(t / 1000);
char timestr[bufsize]; 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)); snprintf(out, bufsize, "%s.%03d", timestr, (uint16_t)(t % 1000));
} }
return out; return out;

View File

@@ -70,7 +70,6 @@ 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_ = 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::deque<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;
bool compact_ = true; bool compact_ = true;
}; };