# utils/boxapi_log.py import json, os, datetime from typing import Any, Dict, Optional LOG_ROOT = os.environ.get("BOXAPI_LOG_DIR", "/app/logs/boxapi") def _ensure_dir(path: str) -> None: os.makedirs(path, exist_ok=True) def log_boxapi_response( username: str, request_payload: Dict[str, Any], response_json: Optional[Dict[str, Any]], status_code: Optional[int], note: str = "" ) -> str: ts = datetime.datetime.utcnow().strftime("%Y%m%dT%H%M%SZ") safe_user = (username or "unknown").replace("/", "_") dirpath = os.path.join(LOG_ROOT, safe_user) _ensure_dir(dirpath) filepath = os.path.join(dirpath, f"{ts}.json") doc = { "timestamp_utc": ts, "username": username, "status_code": status_code, "note": note, "request_payload": request_payload, "response": response_json, } with open(filepath, "w", encoding="utf-8") as f: json.dump(doc, f, ensure_ascii=False, indent=2) return filepath