FastApi-ISS/utils/boxapi_log.py
2025-08-11 21:54:56 +03:30

33 lines
1003 B
Python

# 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