diff --git a/quic/core/quic_tag.cc b/quic/core/quic_tag.cc
index a85f546..109803d 100644
--- a/quic/core/quic_tag.cc
+++ b/quic/core/quic_tag.cc
@@ -8,6 +8,8 @@
 #include <string>
 
 #include "net/third_party/quiche/src/quic/platform/api/quic_arraysize.h"
+#include "net/third_party/quiche/src/quic/platform/api/quic_flag_utils.h"
+#include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_text_utils.h"
 
 namespace quic {
@@ -34,6 +36,9 @@
 }
 
 std::string QuicTagToString(QuicTag tag) {
+  if (GetQuicReloadableFlag(quic_print_tag_hex) && tag == 0) {
+    return "0";
+  }
   char chars[sizeof tag];
   bool ascii = true;
   const QuicTag orig_tag = tag;
@@ -55,7 +60,14 @@
     return std::string(chars, sizeof(chars));
   }
 
-  return QuicTextUtils::Uint64ToString(orig_tag);
+  if (!GetQuicReloadableFlag(quic_print_tag_hex)) {
+    return QuicTextUtils::Uint64ToString(orig_tag);
+  }
+
+  QUIC_RELOADABLE_FLAG_COUNT(quic_print_tag_hex);
+
+  return QuicTextUtils::HexEncode(reinterpret_cast<const char*>(&orig_tag),
+                                  sizeof(orig_tag));
 }
 
 uint32_t MakeQuicTag(char a, char b, char c, char d) {
diff --git a/quic/core/quic_tag_test.cc b/quic/core/quic_tag_test.cc
index 88e636a..20af4ee 100644
--- a/quic/core/quic_tag_test.cc
+++ b/quic/core/quic_tag_test.cc
@@ -5,6 +5,7 @@
 #include "net/third_party/quiche/src/quic/core/quic_tag.h"
 
 #include "net/third_party/quiche/src/quic/core/crypto/crypto_protocol.h"
+#include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_test.h"
 
 namespace quic {
@@ -18,9 +19,12 @@
   EXPECT_EQ("SNO ", QuicTagToString(kServerNonceTag));
   EXPECT_EQ("CRT ", QuicTagToString(kCertificateTag));
   EXPECT_EQ("CHLO", QuicTagToString(MakeQuicTag('C', 'H', 'L', 'O')));
-  // A tag that contains a non-printing character will be printed as a decimal
-  // number.
-  EXPECT_EQ("525092931", QuicTagToString(MakeQuicTag('C', 'H', 'L', '\x1f')));
+  if (!GetQuicReloadableFlag(quic_print_tag_hex)) {
+    EXPECT_EQ("525092931", QuicTagToString(MakeQuicTag('C', 'H', 'L', '\x1f')));
+    return;
+  }
+  // A tag that contains a non-printing character will be printed as hex.
+  EXPECT_EQ("43484c1f", QuicTagToString(MakeQuicTag('C', 'H', 'L', '\x1f')));
 }
 
 TEST_F(QuicTagTest, MakeQuicTag) {
diff --git a/quic/core/quic_versions.cc b/quic/core/quic_versions.cc
index ef2657c..4f1b29c 100644
--- a/quic/core/quic_versions.cc
+++ b/quic/core/quic_versions.cc
@@ -408,6 +408,7 @@
   SetQuicReloadableFlag(quic_use_uber_loss_algorithm, true);
   SetQuicReloadableFlag(quic_use_uber_received_packet_manager, true);
   SetQuicReloadableFlag(quic_validate_packet_number_post_decryption, true);
+  SetQuicReloadableFlag(quic_print_tag_hex, true);
   SetQuicRestartFlag(quic_enable_accept_random_ipn, true);
 }
 
