6262 not_given ,
6363)
6464from ._utils import SensitiveHeadersFilter , is_dict , is_list , asyncify , is_given , lru_cache , is_mapping
65- from ._compat import PYDANTIC_V1 , model_copy , model_dump
65+ from ._compat import PYDANTIC_V1 , model_copy
6666from ._httpx2 import (
6767 status_exceptions ,
6868 timeout_exceptions ,
104104 APIResponseValidationError ,
105105)
106106from ._utils ._json import openapi_dumps
107+ from ._utils ._logs import get_http_method_for_logging
107108from ._legacy_response import LegacyAPIResponse
108109
109110log : logging .Logger = logging .getLogger (__name__ )
@@ -519,20 +520,12 @@ def _build_request(
519520 * ,
520521 retries_taken : int = 0 ,
521522 ) -> httpx2 .Request :
522- if log .isEnabledFor (logging .DEBUG ):
523- log .debug (
524- "Request options: %s" ,
525- model_dump (
526- options ,
527- exclude_unset = True ,
528- # Pydantic v1 can't dump every type we support in content, so we exclude it for now.
529- exclude = {
530- "content" ,
531- }
532- if PYDANTIC_V1
533- else {},
534- ),
535- )
523+ # Request bodies, files, URLs, and custom options can contain private data.
524+ log .debug (
525+ "Building HTTP request: method=%s retries_taken=%i" ,
526+ get_http_method_for_logging (options .method ),
527+ retries_taken ,
528+ )
536529 kwargs : dict [str , Any ] = {}
537530
538531 json_data = options .json_data
@@ -1079,7 +1072,7 @@ def request(
10791072 if options .follow_redirects is not None :
10801073 kwargs ["follow_redirects" ] = options .follow_redirects
10811074
1082- log .debug ("Sending HTTP Request: %s %s " , request .method , request . url )
1075+ log .debug ("Sending HTTP Request: %s" , get_http_method_for_logging ( request .method ) )
10831076
10841077 response = None
10851078 try :
@@ -1089,7 +1082,7 @@ def request(
10891082 ** kwargs ,
10901083 )
10911084 except timeout_exceptions () as err :
1092- log .debug ("Encountered a timeout exception" , exc_info = True )
1085+ log .debug ("Encountered a timeout exception: %s " , type ( err ). __name__ )
10931086
10941087 if remaining_retries > 0 :
10951088 self ._sleep_for_retry (
@@ -1106,7 +1099,7 @@ def request(
11061099 # Propagate OpenAIErrors as-is, without retrying or wrapping in APIConnectionError
11071100 raise err
11081101 except Exception as err :
1109- log .debug ("Encountered Exception " , exc_info = True )
1102+ log .debug ("Encountered exception: %s " , type ( err ). __name__ )
11101103
11111104 if remaining_retries > 0 :
11121105 self ._sleep_for_retry (
@@ -1121,19 +1114,16 @@ def request(
11211114 raise APIConnectionError (request = request ) from err
11221115
11231116 log .debug (
1124- 'HTTP Response: %s %s "%i %s" %s' ,
1125- request .method ,
1126- request .url ,
1117+ "HTTP Response: %s %i" ,
1118+ get_http_method_for_logging (request .method ),
11271119 response .status_code ,
1128- response .reason_phrase ,
1129- response .headers ,
11301120 )
11311121 log .debug ("request_id: %s" , response .headers .get ("x-request-id" ))
11321122
11331123 try :
11341124 response .raise_for_status ()
11351125 except status_exceptions () as err : # thrown on 4xx and 5xx status code
1136- log .debug ("Encountered an HTTP status error" , exc_info = True )
1126+ log .debug ("Encountered an HTTP status error: %i " , response . status_code )
11371127
11381128 if remaining_retries > 0 and self ._should_retry (err .response ):
11391129 err .response .close ()
@@ -1175,7 +1165,7 @@ def _sleep_for_retry(
11751165 log .debug ("%i retries left" , remaining_retries )
11761166
11771167 timeout = self ._calculate_retry_timeout (remaining_retries , options , response .headers if response else None )
1178- log .info ("Retrying request to %s in %f seconds" , options . url , timeout )
1168+ log .info ("Retrying request in %f seconds" , timeout )
11791169
11801170 time .sleep (timeout )
11811171
@@ -1705,7 +1695,7 @@ async def request(
17051695 if options .follow_redirects is not None :
17061696 kwargs ["follow_redirects" ] = options .follow_redirects
17071697
1708- log .debug ("Sending HTTP Request: %s %s " , request .method , request . url )
1698+ log .debug ("Sending HTTP Request: %s" , get_http_method_for_logging ( request .method ) )
17091699
17101700 response = None
17111701 try :
@@ -1715,7 +1705,7 @@ async def request(
17151705 ** kwargs ,
17161706 )
17171707 except timeout_exceptions () as err :
1718- log .debug ("Encountered a timeout exception" , exc_info = True )
1708+ log .debug ("Encountered a timeout exception: %s " , type ( err ). __name__ )
17191709
17201710 if remaining_retries > 0 :
17211711 await self ._sleep_for_retry (
@@ -1732,7 +1722,7 @@ async def request(
17321722 # Propagate OpenAIErrors as-is, without retrying or wrapping in APIConnectionError
17331723 raise err
17341724 except Exception as err :
1735- log .debug ("Encountered Exception " , exc_info = True )
1725+ log .debug ("Encountered exception: %s " , type ( err ). __name__ )
17361726
17371727 if remaining_retries > 0 :
17381728 await self ._sleep_for_retry (
@@ -1747,19 +1737,16 @@ async def request(
17471737 raise APIConnectionError (request = request ) from err
17481738
17491739 log .debug (
1750- 'HTTP Response: %s %s "%i %s" %s' ,
1751- request .method ,
1752- request .url ,
1740+ "HTTP Response: %s %i" ,
1741+ get_http_method_for_logging (request .method ),
17531742 response .status_code ,
1754- response .reason_phrase ,
1755- response .headers ,
17561743 )
17571744 log .debug ("request_id: %s" , response .headers .get ("x-request-id" ))
17581745
17591746 try :
17601747 response .raise_for_status ()
17611748 except status_exceptions () as err : # thrown on 4xx and 5xx status code
1762- log .debug ("Encountered an HTTP status error" , exc_info = True )
1749+ log .debug ("Encountered an HTTP status error: %i " , response . status_code )
17631750
17641751 if remaining_retries > 0 and self ._should_retry (err .response ):
17651752 await err .response .aclose ()
@@ -1801,7 +1788,7 @@ async def _sleep_for_retry(
18011788 log .debug ("%i retries left" , remaining_retries )
18021789
18031790 timeout = self ._calculate_retry_timeout (remaining_retries , options , response .headers if response else None )
1804- log .info ("Retrying request to %s in %f seconds" , options . url , timeout )
1791+ log .info ("Retrying request in %f seconds" , timeout )
18051792
18061793 await anyio .sleep (timeout )
18071794
0 commit comments