Restore log viewer

This commit is contained in:
Richard Bowman 2023-12-13 01:53:55 +00:00
parent 7c662b2787
commit 77c43c824d
2 changed files with 26 additions and 26 deletions

View file

@ -216,11 +216,11 @@ export default {
component: settingsContent, component: settingsContent,
class: "uk-margin-auto-top" class: "uk-margin-auto-top"
}, },
/*{ {
id: "logging", id: "logging",
icon: "assignment_late", icon: "assignment_late",
component: loggingContent component: loggingContent
},*/ },
{ {
id: "about", id: "about",
icon: "info", icon: "info",

View file

@ -42,15 +42,15 @@
<div class="uk-width-xlarge uk-align-center"> <div class="uk-width-xlarge uk-align-center">
<div <div
v-for="item in pagedItems" v-for="item in pagedItems"
:key="item.timestamp" :key="item.sequence"
uk-alert uk-alert
class="logging-entry" class="logging-entry"
:class="{ :class="{
'uk-alert-warning uk-alert': item.data.levelname == 'WARNING', 'uk-alert-warning uk-alert': item.level == 'WARNING',
'uk-alert-danger uk-alert': item.data.levelname == 'ERROR' 'uk-alert-danger uk-alert': item.level == 'ERROR'
}" }"
> >
<b>{{ formatDateTime(item.data.created) }}</b> <b>{{ formatDateTime(item.timestamp) }}</b>
<div class="logging-message">{{ formatMessage(item) }}</div> <div class="logging-message">{{ formatMessage(item) }}</div>
</div> </div>
@ -102,18 +102,15 @@ export default {
var items = []; var items = [];
for (var item of this.logs) { for (var item of this.logs) {
// Add to capture list if matched // Add to capture list if matched
if (this.filteredLevels.includes(item.data.levelname)) { if (this.filteredLevels.includes(item.level)) {
items.push(item); items.push(item);
} }
} }
return items; return items;
}, },
loggingUri: function() {
return `${this.$store.getters.baseUri}/api/v2/events/logging`;
},
logFileURI: function() { logFileURI: function() {
return `${this.$store.getters.baseUri}/api/v2/log`; return `${this.$store.getters.baseUri}/log/`;
}, },
pagedItems: function() { pagedItems: function() {
let startIndex = (this.page - 1) * this.maxitems; let startIndex = (this.page - 1) * this.maxitems;
@ -124,11 +121,6 @@ export default {
} }
}, },
mounted() {
// Update on mount (does nothing if not connected)
this.updateLogs();
},
methods: { methods: {
scrollToTop() { scrollToTop() {
const el = document.querySelector("#container-left"); const el = document.querySelector("#container-left");
@ -141,22 +133,30 @@ export default {
this.updateLogs(); this.updateLogs();
} }
}, },
updateLogs: function() { async updateLogs() {
axios let response = await axios.get(this.logFileURI);
.get(this.loggingUri) let lines = response.data.split("\n").reverse();
.then(response => { this.logs = [];
this.logs = response.data.reverse(); let regexp = /\[(.+)\] \[(.+)\] (.*)$/;
}) for (let line of lines) {
.catch(error => { if (line.length > 0) {
this.modalError(error); // Let mixin handle error let m = line.match(regexp);
}); this.logs.push({
timestamp: m[1],
level: m[2],
message: m[3],
sequence: this.logs.length
});
}
}
}, },
formatDateTime: function(isoDateTimeString) { formatDateTime: function(isoDateTimeString) {
isoDateTimeString = isoDateTimeString.replace(",", ".");
let date = new Date(isoDateTimeString); let date = new Date(isoDateTimeString);
return date.toLocaleDateString() + " " + date.toLocaleTimeString(); return date.toLocaleDateString() + " " + date.toLocaleTimeString();
}, },
formatMessage: function(item) { formatMessage: function(item) {
return item.data.levelname + ": " + item.data.message; return item.level + ": " + item.message;
} }
} }
}; };