diff --git a/p2p/base/stun_port.cc b/p2p/base/stun_port.cc
index 7b1a2a83..7a76af5 100644
--- a/p2p/base/stun_port.cc
+++ b/p2p/base/stun_port.cc
@@ -306,9 +306,7 @@
     if (send_error_count_ < kSendErrorLogLimit) {
       ++send_error_count_;
       RTC_LOG(LS_ERROR) << ToString() << ": UDP send of " << size
-                        << " bytes to host " << addr.ToSensitiveString() << " ("
-                        << addr.ToResolvedSensitiveString()
-                        << ") failed with error " << error_;
+                        << " bytes failed with error " << error_;
     }
   } else {
     send_error_count_ = 0;
@@ -595,11 +593,7 @@
   options.info_signaled_after_sent.packet_type = rtc::PacketType::kStunMessage;
   CopyPortInformationToPacketInfo(&options.info_signaled_after_sent);
   if (socket_->SendTo(data, size, sreq->server_addr(), options) < 0) {
-    RTC_LOG_ERR_EX(LERROR, socket_->GetError())
-        << "UDP send of " << size << " bytes to host "
-        << sreq->server_addr().ToSensitiveString() << " ("
-        << sreq->server_addr().ToResolvedSensitiveString()
-        << ") failed with error " << error_;
+    RTC_LOG_ERR_EX(LERROR, socket_->GetError()) << "sendto";
   }
   stats_.stun_binding_requests_sent++;
 }
diff --git a/rtc_base/socket_address.cc b/rtc_base/socket_address.cc
index 2996ede..639be52 100644
--- a/rtc_base/socket_address.cc
+++ b/rtc_base/socket_address.cc
@@ -178,16 +178,6 @@
   return sb.str();
 }
 
-std::string SocketAddress::ToResolvedSensitiveString() const {
-  if (IsUnresolvedIP()) {
-    return "";
-  }
-  char buf[1024];
-  rtc::SimpleStringBuilder sb(buf);
-  sb << ipaddr().ToSensitiveString() << ":" << port();
-  return sb.str();
-}
-
 bool SocketAddress::FromString(const std::string& str) {
   if (str.at(0) == '[') {
     std::string::size_type closebracket = str.rfind(']');
diff --git a/rtc_base/socket_address.h b/rtc_base/socket_address.h
index 570a712..f459407 100644
--- a/rtc_base/socket_address.h
+++ b/rtc_base/socket_address.h
@@ -124,10 +124,6 @@
   // Same as ToString but anonymizes it by hiding the last part.
   std::string ToSensitiveString() const;
 
-  // Returns hostname:port string if address is resolved, otherwise returns
-  // empty string.
-  std::string ToResolvedSensitiveString() const;
-
   // Parses hostname:port and [hostname]:port.
   bool FromString(const std::string& str);
 
