annator / src /services /local_logger.py
techprotrade's picture
Add src directory
734b5b4 verified
Raw
History Blame Contribute Delete
596 Bytes
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")