Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit f0aec2b

Browse files
committedFeb 1, 2024
Redact the URL query parameters from the urllib3.connectionpool logs
Signed-off-by: Mubashir Kazia <[email protected]>
1 parent 0552990 commit f0aec2b

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed
 

‎src/databricks/sql/__init__.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,33 @@
88

99
paramstyle = "named"
1010

11+
import re
12+
13+
class RedactUrlQueryParamsFilter(logging.Filter):
14+
pattern = re.compile(r"(\?|&)([\w-]+)=([^&]+)")
15+
mask = r"\1\2=<REDACTED>"
16+
17+
def __init__(self):
18+
super().__init__()
19+
20+
def redact(self, string):
21+
return re.sub(self.pattern, self.mask, str(string))
22+
23+
def filter(self, record):
24+
record.msg = self.redact(str(record.msg))
25+
if isinstance(record.args, dict):
26+
for k in record.args.keys():
27+
record.args[k] = self.redact(record.args[k])
28+
else:
29+
record.args = tuple(
30+
(self.redact(arg) if isinstance(arg, str) else arg)
31+
for arg in record.args
32+
)
33+
34+
return True
35+
36+
logging.getLogger("urllib3.connectionpool").addFilter(RedactUrlQueryParamsFilter())
37+
1138

1239
class DBAPITypeObject(object):
1340
def __init__(self, *values):

0 commit comments

Comments
 (0)
Please sign in to comment.