diff --git a/litellm/integrations/custom_logger.py b/litellm/integrations/custom_logger.py index f5dcb37407f..22b4376101f 100644 --- a/litellm/integrations/custom_logger.py +++ b/litellm/integrations/custom_logger.py @@ -860,7 +860,7 @@ class CustomLogger: # https://docs.litellm.ai/docs/observability/custom_callbac if "messages" not in (excluded_fields or []) and standard_logging_object_copy.get("messages") is not None: standard_logging_object_copy["messages"] = [Message(content=redacted_str).model_dump()] - if "metadata" not in (excluded_fields or []): + if not excluded_fields or "metadata" not in excluded_fields: metadata: Final = standard_logging_object_copy.get("metadata") redacted_metadata: Final = redacted_mcp_tool_call_metadata(metadata, redacted_str) if redacted_metadata is not metadata: diff --git a/litellm/litellm_core_utils/redact_messages.py b/litellm/litellm_core_utils/redact_messages.py index 508ec408a59..9d2dd85164f 100644 --- a/litellm/litellm_core_utils/redact_messages.py +++ b/litellm/litellm_core_utils/redact_messages.py @@ -171,8 +171,8 @@ def redacted_mcp_tool_call_metadata(metadata: object, redacted_str: str) -> obje return metadata redacted_call: Final = { - **mcp_tool_call, - **{key: redacted_str for key in ("arguments", "result") if mcp_tool_call.get(key) is not None}, + key: (redacted_str if key in ("arguments", "result") and value is not None else value) + for key, value in mcp_tool_call.items() } return {**metadata, "mcp_tool_call_metadata": redacted_call}