Skip to content

Commit

Permalink
feat(verbose_logging): exclude auth and headers from logging
Browse files Browse the repository at this point in the history
they can contain secrets or objects that are not serializable
  • Loading branch information
lucas03 committed Aug 19, 2024
1 parent 61614df commit 4719ec0
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion request_session/request_session.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import re
import time
from collections import namedtuple
from copy import deepcopy
from typing import List # pylint: disable=unused-import
from typing import Any, Callable, Dict, Optional, Tuple, Union

Expand Down Expand Up @@ -41,6 +42,9 @@ class RequestSession(object):
server error. Defaults to 0.
:param bool verbose_logging: (optional) If true, add request's parameters to event
being logged. Defaults to ``False``.
:param tuple request_param_logging_blacklist: (optional)
Request params keys that won't be logged with verbose_logging.
e.g. auth or header keys might contain secrets. Defaults to ``("auth", "headers")``.
:param str request_category: (optional) Name of the event. ``request_category`` has
to passed to the object or as an argument when calling some HTTP method.
:param bool raise_for_status: (optional) Raise an exception in case of an error.
Expand Down Expand Up @@ -73,6 +77,7 @@ def __init__(
verify=True, # type: Union[bool, str]
max_retries=0, # type: int
verbose_logging=False, # type: bool
request_param_logging_blacklist=None, # type: Optional[Tuple[str]]
headers=None, # type: Optional[Dict]
request_category=None, # type: Optional[str]
raise_for_status=True, # type: bool
Expand Down Expand Up @@ -102,6 +107,7 @@ def __init__(
self.verify = verify
self.max_retries = max_retries
self.verbose_logging = verbose_logging
self.request_param_logging_blacklist = request_param_logging_blacklist or ("auth", "headers")
self.headers = headers
self.request_category = request_category
self.raise_for_status = raise_for_status
Expand Down Expand Up @@ -471,7 +477,11 @@ def _log_with_params(
"""
extra_params = (
{
"request_params": json.dumps(request_params),
"request_params": {
k: v
for k, v in deepcopy(request_params).items()
if k not in self.request_param_logging_blacklist
},
"response_text": self.get_response_text(response),
}
if self.verbose_logging
Expand Down

0 comments on commit 4719ec0

Please sign in to comment.