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 logging
|
||||||
|
import os
|
||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ET
|
||||||
from datetime import datetime, timezone, timedelta
|
from datetime import datetime, timezone, timedelta
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
logger = logging.getLogger("uvicorn")
|
logger = logging.getLogger("uvicorn")
|
||||||
|
|
||||||
|
LOG_REQUESTS = os.getenv("WRITE_REQUESTS") == "1"
|
||||||
|
LOG_FILE = "requests.log"
|
||||||
|
|
||||||
|
|
||||||
class Hosts(str, Enum):
|
class Hosts(str, Enum):
|
||||||
PLEX = "plex.tv"
|
PLEX = "plex.tv"
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import os
|
||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ET
|
||||||
from urllib.parse import parse_qs
|
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 fastapi.responses import Response
|
||||||
from starlette.responses import JSONResponse
|
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
|
from http_client_static_dns import AsyncCustomHost, NameSolver
|
||||||
|
|
||||||
# Configure upstream client
|
# Configure upstream client
|
||||||
@ -60,6 +60,23 @@ async def call_official(request: Request, path: str) -> httpx.Response:
|
|||||||
}
|
}
|
||||||
upstream_response.headers = resp_headers
|
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
|
return upstream_response
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user