diff --git a/quiche/quic/core/http/capsule.cc b/quiche/quic/core/http/capsule.cc
index fc062b9..6d9d5c8 100644
--- a/quiche/quic/core/http/capsule.cc
+++ b/quiche/quic/core/http/capsule.cc
@@ -248,67 +248,77 @@
   }
 }
 
+std::string DatagramCapsule::ToString() const {
+  return absl::StrCat("DATAGRAM[",
+                      absl::BytesToHexString(http_datagram_payload), "]");
+}
+
+std::string LegacyDatagramCapsule::ToString() const {
+  return absl::StrCat("LEGACY_DATAGRAM[",
+                      absl::BytesToHexString(http_datagram_payload), "]");
+}
+
+std::string LegacyDatagramWithoutContextCapsule::ToString() const {
+  return absl::StrCat("LEGACY_DATAGRAM_WITHOUT_CONTEXT[",
+                      absl::BytesToHexString(http_datagram_payload), "]");
+}
+
+std::string CloseWebTransportSessionCapsule::ToString() const {
+  return absl::StrCat("CLOSE_WEBTRANSPORT_SESSION(error_code=", error_code,
+                      ",error_message=\"", error_message, "\")");
+}
+
+std::string AddressRequestCapsule::ToString() const {
+  std::string rv = "ADDRESS_REQUEST[";
+  for (auto requested_address : requested_addresses) {
+    absl::StrAppend(&rv, "(", requested_address.request_id, "-",
+                    requested_address.ip_prefix.ToString(), ")");
+  }
+  absl::StrAppend(&rv, "]");
+  return rv;
+}
+
+std::string AddressAssignCapsule::ToString() const {
+  std::string rv = "ADDRESS_ASSIGN[";
+  for (auto assigned_address : assigned_addresses) {
+    absl::StrAppend(&rv, "(", assigned_address.request_id, "-",
+                    assigned_address.ip_prefix.ToString(), ")");
+  }
+  absl::StrAppend(&rv, "]");
+  return rv;
+}
+
+std::string RouteAdvertisementCapsule::ToString() const {
+  std::string rv = "ROUTE_ADVERTISEMENT[";
+  for (auto ip_address_range : ip_address_ranges) {
+    absl::StrAppend(&rv, "(", ip_address_range.start_ip_address.ToString(), "-",
+                    ip_address_range.end_ip_address.ToString(), "-",
+                    static_cast<int>(ip_address_range.ip_protocol), ")");
+  }
+  absl::StrAppend(&rv, "]");
+  return rv;
+}
+
 std::string Capsule::ToString() const {
-  std::string rv = CapsuleTypeToString(capsule_type_);
   switch (capsule_type_) {
     case CapsuleType::DATAGRAM:
-      absl::StrAppend(
-          &rv, "[",
-          absl::BytesToHexString(datagram_capsule_.http_datagram_payload), "]");
-      break;
+      return datagram_capsule_.ToString();
     case CapsuleType::LEGACY_DATAGRAM:
-      absl::StrAppend(&rv, "[",
-                      absl::BytesToHexString(
-                          legacy_datagram_capsule_.http_datagram_payload),
-                      "]");
-      break;
+      return legacy_datagram_capsule_.ToString();
     case CapsuleType::LEGACY_DATAGRAM_WITHOUT_CONTEXT:
-      absl::StrAppend(
-          &rv, "[",
-          absl::BytesToHexString(
-              legacy_datagram_without_context_capsule_.http_datagram_payload),
-          "]");
-      break;
+      return legacy_datagram_without_context_capsule_.ToString();
     case CapsuleType::CLOSE_WEBTRANSPORT_SESSION:
-      absl::StrAppend(
-          &rv, "(error_code=", close_web_transport_session_capsule_.error_code,
-          ",error_message=\"",
-          close_web_transport_session_capsule_.error_message, "\")");
-      break;
-    case CapsuleType::ADDRESS_REQUEST: {
-      absl::StrAppend(&rv, "[");
-      for (auto requested_address :
-           address_request_capsule_->requested_addresses) {
-        absl::StrAppend(&rv, "(", requested_address.request_id, "-",
-                        requested_address.ip_prefix.ToString(), ")");
-      }
-      absl::StrAppend(&rv, "]");
-    } break;
-    case CapsuleType::ADDRESS_ASSIGN: {
-      absl::StrAppend(&rv, "[");
-      for (auto assigned_address :
-           address_assign_capsule_->assigned_addresses) {
-        absl::StrAppend(&rv, "(", assigned_address.request_id, "-",
-                        assigned_address.ip_prefix.ToString(), ")");
-      }
-      absl::StrAppend(&rv, "]");
-    } break;
-    case CapsuleType::ROUTE_ADVERTISEMENT: {
-      absl::StrAppend(&rv, "[");
-      for (auto ip_address_range :
-           route_advertisement_capsule_->ip_address_ranges) {
-        absl::StrAppend(&rv, "(", ip_address_range.start_ip_address.ToString(),
-                        "-", ip_address_range.end_ip_address.ToString(), "-",
-                        static_cast<int>(ip_address_range.ip_protocol), ")");
-      }
-      absl::StrAppend(&rv, "]");
-    } break;
+      return close_web_transport_session_capsule_.ToString();
+    case CapsuleType::ADDRESS_REQUEST:
+      return address_request_capsule_->ToString();
+    case CapsuleType::ADDRESS_ASSIGN:
+      return address_assign_capsule_->ToString();
+    case CapsuleType::ROUTE_ADVERTISEMENT:
+      return route_advertisement_capsule_->ToString();
     default:
-      absl::StrAppend(&rv, "[", absl::BytesToHexString(unknown_capsule_data_),
-                      "]");
-      break;
+      return absl::StrCat(CapsuleTypeToString(capsule_type_), "[",
+                          absl::BytesToHexString(unknown_capsule_data_), "]");
   }
-  return rv;
 }
 
 std::ostream& operator<<(std::ostream& os, const Capsule& capsule) {
diff --git a/quiche/quic/core/http/capsule.h b/quiche/quic/core/http/capsule.h
index c7866a8..198f667 100644
--- a/quiche/quic/core/http/capsule.h
+++ b/quiche/quic/core/http/capsule.h
@@ -39,16 +39,20 @@
 
 struct QUIC_EXPORT_PRIVATE DatagramCapsule {
   absl::string_view http_datagram_payload;
+  std::string ToString() const;
 };
 struct QUIC_EXPORT_PRIVATE LegacyDatagramCapsule {
   absl::string_view http_datagram_payload;
+  std::string ToString() const;
 };
 struct QUIC_EXPORT_PRIVATE LegacyDatagramWithoutContextCapsule {
   absl::string_view http_datagram_payload;
+  std::string ToString() const;
 };
 struct QUIC_EXPORT_PRIVATE CloseWebTransportSessionCapsule {
   WebTransportSessionError error_code;
   absl::string_view error_message;
+  std::string ToString() const;
 };
 struct QUIC_EXPORT_PRIVATE PrefixWithId {
   uint64_t request_id;
@@ -64,14 +68,17 @@
 struct QUIC_EXPORT_PRIVATE AddressAssignCapsule {
   std::vector<PrefixWithId> assigned_addresses;
   bool operator==(const AddressAssignCapsule& other) const;
+  std::string ToString() const;
 };
 struct QUIC_EXPORT_PRIVATE AddressRequestCapsule {
   std::vector<PrefixWithId> requested_addresses;
   bool operator==(const AddressRequestCapsule& other) const;
+  std::string ToString() const;
 };
 struct QUIC_EXPORT_PRIVATE RouteAdvertisementCapsule {
   std::vector<IpAddressRange> ip_address_ranges;
   bool operator==(const RouteAdvertisementCapsule& other) const;
+  std::string ToString() const;
 };
 
 // Capsule from RFC 9297.
diff --git a/quiche/quic/masque/masque_encapsulated_client_session.cc b/quiche/quic/masque/masque_encapsulated_client_session.cc
index 6b76417..a4d83f6 100644
--- a/quiche/quic/masque/masque_encapsulated_client_session.cc
+++ b/quiche/quic/masque/masque_encapsulated_client_session.cc
@@ -217,6 +217,7 @@
 
 bool MasqueEncapsulatedClientSession::OnAddressAssignCapsule(
     const AddressAssignCapsule& capsule) {
+  QUIC_DLOG(INFO) << "Received capsule " << capsule.ToString();
   for (auto assigned_address : capsule.assigned_addresses) {
     if (assigned_address.ip_prefix.address().IsIPv4() &&
         !local_v4_address_.IsInitialized()) {
@@ -236,12 +237,14 @@
 }
 
 bool MasqueEncapsulatedClientSession::OnAddressRequestCapsule(
-    const AddressRequestCapsule& /*capsule*/) {
+    const AddressRequestCapsule& capsule) {
+  QUIC_DLOG(INFO) << "Ignoring received capsule " << capsule.ToString();
   return true;
 }
 
 bool MasqueEncapsulatedClientSession::OnRouteAdvertisementCapsule(
-    const RouteAdvertisementCapsule& /*capsule*/) {
+    const RouteAdvertisementCapsule& capsule) {
+  QUIC_DLOG(INFO) << "Ignoring received capsule " << capsule.ToString();
   return true;
 }
 
diff --git a/quiche/quic/masque/masque_server_session.cc b/quiche/quic/masque/masque_server_session.cc
index f770b70..2feb48d 100644
--- a/quiche/quic/masque/masque_server_session.cc
+++ b/quiche/quic/masque/masque_server_session.cc
@@ -594,17 +594,20 @@
 }
 
 bool MasqueServerSession::ConnectIpServerState::OnAddressAssignCapsule(
-    const AddressAssignCapsule& /*capsule*/) {
+    const AddressAssignCapsule& capsule) {
+  QUIC_DLOG(INFO) << "Ignoring received capsule " << capsule.ToString();
   return true;
 }
 
 bool MasqueServerSession::ConnectIpServerState::OnAddressRequestCapsule(
-    const AddressRequestCapsule& /*capsule*/) {
+    const AddressRequestCapsule& capsule) {
+  QUIC_DLOG(INFO) << "Ignoring received capsule " << capsule.ToString();
   return true;
 }
 
 bool MasqueServerSession::ConnectIpServerState::OnRouteAdvertisementCapsule(
-    const RouteAdvertisementCapsule& /*capsule*/) {
+    const RouteAdvertisementCapsule& capsule) {
+  QUIC_DLOG(INFO) << "Ignoring received capsule " << capsule.ToString();
   return true;
 }
 
