let logMonitorEl = null; async function logMonitor() { setTimeout(logMonitor, opts.logmonitor_refresh_period); if (logMonitorEl) logMonitorEl.parentElement.style.display = opts.logmonitor_show ? 'block' : 'none'; if (!opts.logmonitor_show) return; const res = await fetch('/sdapi/v1/log?clear=True'); if (res?.ok) { if (!logMonitorEl) logMonitorEl = document.getElementById('logMonitorData'); if (!logMonitorEl) return; logMonitorEl.parentElement.style.display = 'block'; const lines = await res.json(); for (const line of lines) { const l = JSON.parse(line); const row = document.createElement("tr"); row.style = 'padding: 10px; margin: 0;'; row.innerHTML = `${new Date(1000 * l.created).toISOString()}${l.level}${l.facility}${l.module}${l.msg}`; logMonitorEl.appendChild(row); while (logMonitorEl.childElementCount > 100) logMonitorEl.removeChild(logMonitorEl.firstChild); logMonitorEl.scrollTop = logMonitorEl.scrollHeight } } } async function logMonitorCreate() { const el = document.getElementsByTagName('footer')[0]; if (!el) return; el.classList.add('log-monitor'); el.innerHTML = `
Time Level Facility Module Message
`; logMonitor(); }