20 lines
680 B
Python
20 lines
680 B
Python
# scripts/engine/lib/log.py
|
|
"""ctx.log — [node] [action] [level] message (port of root_log_*)."""
|
|
from __future__ import annotations
|
|
import sys
|
|
|
|
|
|
class Log:
|
|
def __init__(self, node: str = "global", action: str = "core"):
|
|
self.node = node
|
|
self.action = action
|
|
|
|
def _emit(self, level: str, msg: str, stream=None) -> None:
|
|
print(f"[{self.node}] [{self.action}] [{level}] {msg}",
|
|
file=stream or sys.stdout, flush=True)
|
|
|
|
def info(self, msg): self._emit("INFO", msg)
|
|
def warn(self, msg): self._emit("WARN", msg)
|
|
def error(self, msg): self._emit("ERROR", msg, sys.stderr)
|
|
def success(self, msg): self._emit("SUCCESS", msg)
|