File size: 596 Bytes
734b5b4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | from __future__ import annotations
from pathlib import Path
import json
from datetime import datetime
class LocalLogger:
def __init__(self, log_file: Path):
self.log_file = log_file
self.log_file.parent.mkdir(parents=True, exist_ok=True)
def log(self, stage: str, level: str, message: str, **extra):
event = {"timestamp": datetime.utcnow().isoformat()+"Z",
"stage": stage, "level": level, "message": message, **extra}
with self.log_file.open("a", encoding="utf-8") as f:
f.write(json.dumps(event, ensure_ascii=False) + "\n")
|