added debug mode to write requests to disk
This commit is contained in:
parent
240094d741
commit
7c67f7d180
4
const.py
4
const.py
@ -1,10 +1,14 @@
|
||||
import logging
|
||||
import os
|
||||
import xml.etree.ElementTree as ET
|
||||
from datetime import datetime, timezone, timedelta
|
||||
from enum import Enum
|
||||
|
||||
logger = logging.getLogger("uvicorn")
|
||||
|
||||
LOG_REQUESTS = os.getenv("WRITE_REQUESTS") == "1"
|
||||
LOG_FILE = "requests.log"
|
||||
|
||||
|
||||
class Hosts(str, Enum):
|
||||
PLEX = "plex.tv"
|
||||
|
@ -1,3 +1,4 @@
|
||||
import os
|
||||
import xml.etree.ElementTree as ET
|
||||
from urllib.parse import parse_qs
|
||||
|
||||
|
19
utils.py
19
utils.py
@ -3,7 +3,7 @@ from fastapi import Request, Depends, HTTPException
|
||||
from fastapi.responses import Response
|
||||
from starlette.responses import JSONResponse
|
||||
|
||||
from const import Hosts, HOP_BY_HOP_HEADERS, logger
|
||||
from const import Hosts, HOP_BY_HOP_HEADERS, logger, LOG_REQUESTS, LOG_FILE
|
||||
from http_client_static_dns import AsyncCustomHost, NameSolver
|
||||
|
||||
# Configure upstream client
|
||||
@ -60,6 +60,23 @@ async def call_official(request: Request, path: str) -> httpx.Response:
|
||||
}
|
||||
upstream_response.headers = resp_headers
|
||||
|
||||
if LOG_REQUESTS:
|
||||
with open(LOG_FILE, "a", encoding="utf-8") as f:
|
||||
f.write(f"{request.method} {request.url}\n")
|
||||
f.write(f"Request headers: {req_headers}\n")
|
||||
if body:
|
||||
try:
|
||||
f.write(f"Request body: {body.decode('utf-8')}\n")
|
||||
except UnicodeDecodeError:
|
||||
f.write(f"Request body: {body}\n")
|
||||
f.write(f"Response status: {upstream_response.status_code}\n")
|
||||
f.write(f"Response headers: {resp_headers}\n")
|
||||
try:
|
||||
f.write(f"Response body: {upstream_response.text}\n")
|
||||
except UnicodeDecodeError:
|
||||
f.write(f"Response body: {upstream_response.content}\n")
|
||||
f.write("\n---\n\n")
|
||||
|
||||
return upstream_response
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user