From 843381c3d7fa661aaf6abc61fdf320f8be201e12 Mon Sep 17 00:00:00 2001 From: Leszek Hanusz Date: Sun, 25 May 2025 23:53:36 +0200 Subject: [PATCH] Set logging level to DEBUG for all transports --- docs/advanced/logging.rst | 14 ++------------ gql/transport/aiohttp.py | 12 ++++++------ gql/transport/common/base.py | 4 ++-- gql/transport/httpx.py | 2 +- gql/transport/requests.py | 16 ++++++++-------- 5 files changed, 19 insertions(+), 29 deletions(-) diff --git a/docs/advanced/logging.rst b/docs/advanced/logging.rst index 02fdf3fd..f75c5f32 100644 --- a/docs/advanced/logging.rst +++ b/docs/advanced/logging.rst @@ -4,14 +4,7 @@ Logging GQL uses the python `logging`_ module. In order to debug a problem, you can enable logging to see the messages exchanged between the client and the server. -To do that, set the loglevel at **INFO** at the beginning of your code: - -.. code-block:: python - - import logging - logging.basicConfig(level=logging.INFO) - -For even more logs, you can set the loglevel at **DEBUG**: +To do that, set the loglevel at **DEBUG** at the beginning of your code: .. code-block:: python @@ -21,10 +14,7 @@ For even more logs, you can set the loglevel at **DEBUG**: Disabling logs -------------- -By default, the logs for the transports are quite verbose. - -On the **INFO** level, all the messages between the frontend and the backend are logged which can -be difficult to read especially when it fetches the schema from the transport. +On the **DEBUG** log level, the logs for the transports are quite verbose. It is possible to disable the logs only for a specific gql transport by setting a higher log level for this transport (**WARNING** for example) so that the other logs of your program are not affected. diff --git a/gql/transport/aiohttp.py b/gql/transport/aiohttp.py index 0a677af3..2c0d8fa7 100644 --- a/gql/transport/aiohttp.py +++ b/gql/transport/aiohttp.py @@ -175,8 +175,8 @@ def _prepare_batch_request( post_args = {"json": payload} # Log the payload - if log.isEnabledFor(logging.INFO): - log.info(">>> %s", self.json_serialize(post_args["json"])) + if log.isEnabledFor(logging.DEBUG): + log.debug(">>> %s", self.json_serialize(post_args["json"])) # Pass post_args to aiohttp post method if extra_args: @@ -199,8 +199,8 @@ def _prepare_request( post_args = {"json": payload} # Log the payload - if log.isEnabledFor(logging.INFO): - log.info(">>> %s", self.json_serialize(payload)) + if log.isEnabledFor(logging.DEBUG): + log.debug(">>> %s", self.json_serialize(payload)) # Pass post_args to aiohttp post method if extra_args: @@ -299,9 +299,9 @@ async def _get_json_result(self, response: aiohttp.ClientResponse) -> Any: try: result = await response.json(loads=self.json_deserialize, content_type=None) - if log.isEnabledFor(logging.INFO): + if log.isEnabledFor(logging.DEBUG): result_text = await response.text() - log.info("<<< %s", result_text) + log.debug("<<< %s", result_text) except Exception: await self.raise_response_error(response, "Not a JSON answer") diff --git a/gql/transport/common/base.py b/gql/transport/common/base.py index f2070fe1..734c393b 100644 --- a/gql/transport/common/base.py +++ b/gql/transport/common/base.py @@ -136,7 +136,7 @@ async def _send(self, message: str) -> None: try: # Can raise TransportConnectionFailed await self.adapter.send(message) - log.info(">>> %s", message) + log.debug(">>> %s", message) except TransportConnectionFailed as e: await self._fail(e, clean_close=False) raise e @@ -152,7 +152,7 @@ async def _receive(self) -> str: # Can raise TransportConnectionFailed or TransportProtocolError answer: str = await self.adapter.receive() - log.info("<<< %s", answer) + log.debug("<<< %s", answer) return answer diff --git a/gql/transport/httpx.py b/gql/transport/httpx.py index f3416c24..76324cd7 100644 --- a/gql/transport/httpx.py +++ b/gql/transport/httpx.py @@ -92,7 +92,7 @@ def _prepare_batch_request( post_args = {"json": payload} # Log the payload - if log.isEnabledFor(logging.INFO): + if log.isEnabledFor(logging.DEBUG): log.debug(">>> %s", self.json_serialize(payload)) # Pass post_args to aiohttp post method diff --git a/gql/transport/requests.py b/gql/transport/requests.py index 2087bbd0..7be288d2 100644 --- a/gql/transport/requests.py +++ b/gql/transport/requests.py @@ -237,8 +237,8 @@ def execute( # type: ignore post_args[data_key] = payload # Log the payload - if log.isEnabledFor(logging.INFO): - log.info(">>> %s", self.json_serialize(payload)) + if log.isEnabledFor(logging.DEBUG): + log.debug(">>> %s", self.json_serialize(payload)) # Pass kwargs to requests post method post_args.update(self.kwargs) @@ -282,8 +282,8 @@ def raise_response_error(resp: requests.Response, reason: str) -> NoReturn: else: result = self.json_deserialize(response.text) - if log.isEnabledFor(logging.INFO): - log.info("<<< %s", response.text) + if log.isEnabledFor(logging.DEBUG): + log.debug("<<< %s", response.text) except Exception: raise_response_error(response, "Not a JSON answer") @@ -344,8 +344,8 @@ def _extract_response(self, response: requests.Response) -> Any: response.raise_for_status() result = response.json() - if log.isEnabledFor(logging.INFO): - log.info("<<< %s", response.text) + if log.isEnabledFor(logging.DEBUG): + log.debug("<<< %s", response.text) except requests.HTTPError as e: raise TransportServerError( @@ -375,8 +375,8 @@ def _build_batch_post_args( post_args[data_key] = [req.payload for req in reqs] # Log the payload - if log.isEnabledFor(logging.INFO): - log.info(">>> %s", self.json_serialize(post_args[data_key])) + if log.isEnabledFor(logging.DEBUG): + log.debug(">>> %s", self.json_serialize(post_args[data_key])) # Pass kwargs to requests post method post_args.update(self.kwargs)