Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| import json | |
| import logging | |
| import sys | |
| from datetime import datetime, timezone | |
| from typing import Any | |
| def setup_logging() -> logging.Logger: | |
| logger = logging.getLogger("photo_api") | |
| if logger.handlers: | |
| return logger | |
| logger.setLevel(logging.INFO) | |
| handler = logging.StreamHandler(sys.stdout) | |
| handler.setFormatter(logging.Formatter("%(message)s")) | |
| logger.addHandler(handler) | |
| return logger | |
| def log_json(logger: logging.Logger, *, event: str, **fields: Any) -> None: | |
| payload: dict[str, Any] = { | |
| "ts": datetime.now(timezone.utc).isoformat(), | |
| "event": event, | |
| **fields, | |
| } | |
| logger.info(json.dumps(payload, ensure_ascii=False, separators=(",", ":"))) | |