Spaces:
Paused
Paused
| """ | |
| 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) | |