robotic_seminars / src /ui_log.py
ar0s's picture
added persistent storage
68fc3c9
raw
history blame contribute delete
706 Bytes
from __future__ import annotations
from datetime import datetime, timezone
LINES: list[str] = []
def ts() -> str:
return datetime.now(timezone.utc).isoformat(timespec="seconds")
def log(level: str, msg: str) -> None:
html = {
"INFO": "dodgerblue",
"WARN": "goldenrod",
"ERR": "crimson",
}
c = html.get(level)
tag = f"<span style=\"color:{c}\">{level}</span>" if c else level
LINES.append(f"[{ts()}] {tag}: {msg}")
def info(msg: str) -> None:
log("INFO", msg)
def warn(msg: str) -> None:
log("WARN", msg)
def error(msg: str) -> None:
log("ERR", msg)
def clear() -> None:
LINES.clear()
def lines() -> list[str]:
return LINES