diff --git a/litellm/_logging.py b/litellm/_logging.py index 09c3b45d681..9cadbb72a61 100644 --- a/litellm/_logging.py +++ b/litellm/_logging.py @@ -478,7 +478,11 @@ class CredentialScrubberFilter(logging.Filter): } elif isinstance(record.args, tuple): record.args = tuple( - _scrub_secrets(str(a)) if isinstance(a, str) else a + ( + _scrub_secrets(str(a)) + if not isinstance(a, (bool, int, float, type(None))) + else a + ) for a in record.args ) if record.exc_info and record.exc_info[1] is not None: diff --git a/tests/test_litellm/test_credential_scrubber.py b/tests/test_litellm/test_credential_scrubber.py index 92ee04504a6..c8cdf2e2a29 100644 --- a/tests/test_litellm/test_credential_scrubber.py +++ b/tests/test_litellm/test_credential_scrubber.py @@ -113,7 +113,13 @@ class TestCredentialScrubberFilter: f = CredentialScrubberFilter() record = self._make_record( - "vals=%s %s %s", (42, None, "api_key=sk-secret123456789") + "vals=%s %s %s %s", + ( + 42, + None, + "api_key=sk-secret123456789", + {"api_key": "sk-dictval12345678901"}, + ), ) f.filter(record) args = record.args @@ -121,6 +127,7 @@ class TestCredentialScrubberFilter: assert args[0] == 42 assert args[1] is None assert "sk-secret123456789" not in str(args[2]) + assert "sk-dictval12345678901" not in str(args[3]) def test_no_args_no_crash(self): # Branch: record.args is falsy (empty tuple)