window.LogsModule = {
ws: null,
init: () => {
const box = document.getElementById("log-box");
const base = window.location.pathname.split("/").slice(0,2).join("/");
const connect = () => {
window.LogsModule.ws = new WebSocket("ws://"+location.host+base+"/api/logs/ws");
window.LogsModule.ws.onopen = () => box.innerHTML += "
Connected
";
window.LogsModule.ws.onmessage = e => {
try {
const d = JSON.parse(e.data);
if(d.type === "log") {
const cls = d.level === "ERROR" ? "log-ERROR" : d.level === "WARNING" ? "log-WARNING" : "log-INFO";
const t = d.timestamp ? new Date(d.timestamp*1000).toLocaleTimeString() : "--";
box.innerHTML += ""+t+"["+d.level+"] "+d.message+"
";
box.scrollTop = box.scrollHeight;
}
}catch(e){}
};
window.LogsModule.ws.onclose = setTimeout(connect, 3000);
};
connect();
},
destroy: () => window.LogsModule.ws?.close()
};