""" Custom logging formatters for PyRunner. """ import json import logging from datetime import datetime class JsonFormatter(logging.Formatter): """ Format log records as JSON for easier parsing. """ def format(self, record: logging.LogRecord) -> str: log_entry = { "timestamp": datetime.fromtimestamp(record.created).isoformat(), "level": record.levelname, "logger": record.name, "message": record.getMessage(), "module": record.module, "function": record.funcName, "line": record.lineno, } # Add exception info if present if record.exc_info: log_entry["exception"] = self.formatException(record.exc_info) return json.dumps(log_entry)