feat: add comprehensive logging for API requests and responses
This commit is contained in:
parent
ed86ad63b1
commit
e64d1f8346
Binary file not shown.
@ -248,6 +248,9 @@ class KworkClient:
|
|||||||
"l_remember_me": "1",
|
"l_remember_me": "1",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
logger.info(f"Login request: POST https://kwork.ru/api/user/login (user: {username})")
|
||||||
|
logger.debug(f"Login payload: {login_data}")
|
||||||
|
|
||||||
response = await http_client.post(
|
response = await http_client.post(
|
||||||
"https://kwork.ru/api/user/login",
|
"https://kwork.ru/api/user/login",
|
||||||
json=login_data,
|
json=login_data,
|
||||||
@ -261,12 +264,20 @@ class KworkClient:
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
logger.debug(f"Login response status: {response.status_code}")
|
||||||
|
logger.debug(f"Login response headers: {dict(response.headers)}")
|
||||||
|
|
||||||
if response.status_code != 200:
|
if response.status_code != 200:
|
||||||
|
logger.error(f"Login failed with status {response.status_code}: {response.text[:200]}")
|
||||||
raise KworkAuthError(f"Login failed: {response.status_code}")
|
raise KworkAuthError(f"Login failed: {response.status_code}")
|
||||||
|
|
||||||
response_data = response.json()
|
response_data = response.json()
|
||||||
cookies = dict(response.cookies)
|
cookies = dict(response.cookies)
|
||||||
|
|
||||||
|
logger.info(f"Login successful: user_id={cookies.get('userId')}, csrf_token={response_data.get('csrftoken', 'N/A')[:20] if response_data.get('csrftoken') else 'N/A'}")
|
||||||
|
logger.debug(f"Login response data: {response_data}")
|
||||||
|
logger.debug(f"Login cookies: {list(cookies.keys())}")
|
||||||
|
|
||||||
# Debug: print response for troubleshooting
|
# Debug: print response for troubleshooting
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@ -405,10 +416,31 @@ class KworkClient:
|
|||||||
"""
|
"""
|
||||||
http_client = self._get_httpx_client()
|
http_client = self._get_httpx_client()
|
||||||
|
|
||||||
|
# Log request
|
||||||
|
full_url = f"{self.base_url}{endpoint}" if not endpoint.startswith("http") else endpoint
|
||||||
|
logger.debug(f"API Request: {method} {full_url}")
|
||||||
|
logger.debug(f"Request kwargs: {kwargs}")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
response = await http_client.request(method, endpoint, **kwargs)
|
response = await http_client.request(method, endpoint, **kwargs)
|
||||||
|
|
||||||
|
# Log response
|
||||||
|
logger.debug(f"API Response: {response.status_code} {response.reason_phrase}")
|
||||||
|
logger.debug(f"Response headers: {dict(response.headers)}")
|
||||||
|
|
||||||
|
# Log response body (truncated for large responses)
|
||||||
|
try:
|
||||||
|
response_text = response.text
|
||||||
|
if len(response_text) > 500:
|
||||||
|
logger.debug(f"Response body (truncated): {response_text[:500]}...")
|
||||||
|
else:
|
||||||
|
logger.debug(f"Response body: {response_text}")
|
||||||
|
except Exception:
|
||||||
|
logger.debug("Response body: <not available>")
|
||||||
|
|
||||||
return self._handle_response(response)
|
return self._handle_response(response)
|
||||||
except httpx.RequestError as e:
|
except httpx.RequestError as e:
|
||||||
|
logger.error(f"Network error for {method} {full_url}: {e}")
|
||||||
raise KworkNetworkError(f"Request failed: {e}") from e
|
raise KworkNetworkError(f"Request failed: {e}") from e
|
||||||
|
|
||||||
# ========== Catalog Endpoints ==========
|
# ========== Catalog Endpoints ==========
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user