diff --git a/quic/core/quic_connection.h b/quic/core/quic_connection.h
index 173f648..09f387e 100644
--- a/quic/core/quic_connection.h
+++ b/quic/core/quic_connection.h
@@ -36,6 +36,7 @@
 #include "quic/core/quic_alarm.h"
 #include "quic/core/quic_alarm_factory.h"
 #include "quic/core/quic_blocked_writer_interface.h"
+#include "quic/core/quic_connection_context.h"
 #include "quic/core/quic_connection_id.h"
 #include "quic/core/quic_connection_id_manager.h"
 #include "quic/core/quic_connection_stats.h"
@@ -1253,6 +1254,13 @@
     return donot_write_mid_packet_processing_;
   }
 
+  QuicConnectionContext* context() { return &context_; }
+  const QuicConnectionContext* context() const { return &context_; }
+
+  void set_tracer(std::unique_ptr<QuicConnectionTracer> tracer) {
+    context_.tracer.swap(tracer);
+  }
+
  protected:
   // Calls cancel() on all the alarms owned by this connection.
   void CancelAllAlarms();
@@ -1849,6 +1857,8 @@
   bool ShouldSetRetransmissionAlarmOnPacketSent(bool in_flight,
                                                 EncryptionLevel level) const;
 
+  QuicConnectionContext context_;
+
   QuicFramer framer_;
 
   // Contents received in the current packet, especially used to identify
diff --git a/quic/core/quic_connection_context.cc b/quic/core/quic_connection_context.cc
index 65a8dd6..e77fc43 100644
--- a/quic/core/quic_connection_context.cc
+++ b/quic/core/quic_connection_context.cc
@@ -20,9 +20,16 @@
     QuicConnectionContext* new_context)
     : old_context_(QuicConnectionContext::Current()) {
   SET_QUICHE_THREAD_LOCAL_POINTER(CurrentContext, new_context);
+  if (new_context && new_context->tracer) {
+    new_context->tracer->Activate();
+  }
 }
 
 QuicConnectionContextSwitcher::~QuicConnectionContextSwitcher() {
+  QuicConnectionContext* current = QuicConnectionContext::Current();
+  if (current && current->tracer) {
+    current->tracer->Deactivate();
+  }
   SET_QUICHE_THREAD_LOCAL_POINTER(CurrentContext, old_context_);
 }
 
diff --git a/quic/core/quic_connection_context.h b/quic/core/quic_connection_context.h
index 05b09cf..7cedee6 100644
--- a/quic/core/quic_connection_context.h
+++ b/quic/core/quic_connection_context.h
@@ -33,6 +33,23 @@
     std::string s = absl::StrFormat(format, args...);
     PrintString(s);
   }
+
+ private:
+  friend class QuicConnectionContextSwitcher;
+
+  // Called by QuicConnectionContextSwitcher, when |this| becomes the current
+  // thread's QUIC connection tracer.
+  //
+  // Activate/Deactivate are only called by QuicConnectionContextSwitcher's
+  // constructor/destructor, they always come in pairs.
+  virtual void Activate() {}
+
+  // Called by QuicConnectionContextSwitcher, when |this| stops from being the
+  // current thread's QUIC connection tracer.
+  //
+  // Activate/Deactivate are only called by QuicConnectionContextSwitcher's
+  // constructor/destructor, they always come in pairs.
+  virtual void Deactivate() {}
 };
 
 // QuicConnectionContext is a per-QuicConnection context that includes
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index dd96a57..5c56c15 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -13,6 +13,7 @@
 #include "absl/strings/string_view.h"
 #include "quic/core/frames/quic_ack_frequency_frame.h"
 #include "quic/core/quic_connection.h"
+#include "quic/core/quic_connection_context.h"
 #include "quic/core/quic_error_codes.h"
 #include "quic/core/quic_flow_controller.h"
 #include "quic/core/quic_types.h"
@@ -751,6 +752,7 @@
 void QuicSession::ProcessUdpPacket(const QuicSocketAddress& self_address,
                                    const QuicSocketAddress& peer_address,
                                    const QuicReceivedPacket& packet) {
+  QuicConnectionContextSwitcher cs(connection_->context());
   connection_->ProcessUdpPacket(self_address, peer_address, packet);
 }
 
