diff --git a/test/pc/e2e/BUILD.gn b/test/pc/e2e/BUILD.gn
index c62e8f7..3a7114b 100644
--- a/test/pc/e2e/BUILD.gn
+++ b/test/pc/e2e/BUILD.gn
@@ -409,6 +409,7 @@
         "../../../api/rtc_event_log",
         "../../../api/task_queue",
         "../../../api/test/metrics:metric",
+        "../../../api/test/metrics:metrics_logger",
         "../../../api/test/metrics:metrics_logger_and_exporter",
         "../../../api/units:time_delta",
         "../../../api/units:timestamp",
@@ -525,6 +526,7 @@
         "../../../api:create_peer_connection_quality_test_frame_generator",
         "../../../api:network_emulation_manager_api",
         "../../../api:peer_connection_quality_test_fixture_api",
+        "../../../api/test/metrics:metrics_logger",
         "../../../api/test/metrics:metrics_logger_and_exporter",
         "../../../api/test/metrics:stdout_metrics_exporter",
         "../../../api/units:time_delta",
@@ -598,6 +600,7 @@
         "../../../api:create_frame_generator",
         "../../../api:rtp_packet_info",
         "../../../api/test/metrics:metric",
+        "../../../api/test/metrics:metrics_logger",
         "../../../api/test/metrics:metrics_logger_and_exporter",
         "../../../api/test/metrics:stdout_metrics_exporter",
         "../../../api/video:encoded_image",
@@ -690,6 +693,7 @@
       "../../../api:track_id_stream_info_map",
       "../../../api/numerics",
       "../../../api/test/metrics:metric",
+      "../../../api/test/metrics:metrics_logger",
       "../../../api/test/metrics:metrics_logger_and_exporter",
       "../../../api/units:time_delta",
       "../../../api/units:timestamp",
@@ -736,6 +740,7 @@
       "../../../api:track_id_stream_info_map",
       "../../../api/numerics",
       "../../../api/test/metrics:metric",
+      "../../../api/test/metrics:metrics_logger",
       "../../../api/test/metrics:metrics_logger_and_exporter",
       "../../../api/units:data_rate",
       "../../../api/units:data_size",
@@ -765,6 +770,7 @@
       "../../../api:video_quality_analyzer_api",
       "../../../api/numerics",
       "../../../api/test/metrics:metric",
+      "../../../api/test/metrics:metrics_logger",
       "../../../api/test/metrics:metrics_logger_and_exporter",
       "../../../api/units:data_size",
       "../../../api/units:time_delta",
@@ -875,6 +881,7 @@
       "../../../api:rtc_stats_api",
       "../../../api:track_id_stream_info_map",
       "../../../api/test/metrics:metric",
+      "../../../api/test/metrics:metrics_logger",
       "../../../api/test/metrics:metrics_logger_and_exporter",
       "../../../api/units:data_size",
       "../../../rtc_base:criticalsection",
@@ -901,6 +908,7 @@
       "../../../api:scoped_refptr",
       "../../../api/numerics",
       "../../../api/test/metrics:metric",
+      "../../../api/test/metrics:metrics_logger",
       "../../../api/test/metrics:metrics_logger_and_exporter",
       "../../../api/test/network_emulation",
       "../../../api/units:data_rate",
@@ -931,6 +939,7 @@
       "../../../api:track_id_stream_info_map",
       "../../../api/numerics",
       "../../../api/test/metrics:metric",
+      "../../../api/test/metrics:metrics_logger",
       "../../../api/test/metrics:metrics_logger_and_exporter",
       "../../../api/units:timestamp",
       "../../../rtc_base:criticalsection",
diff --git a/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.h b/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.h
index 673f907..c08e740 100644
--- a/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.h
+++ b/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.h
@@ -17,7 +17,7 @@
 #include "absl/strings/string_view.h"
 #include "api/numerics/samples_stats_counter.h"
 #include "api/test/audio_quality_analyzer_interface.h"
-#include "api/test/metrics/metrics_logger_and_exporter.h"
+#include "api/test/metrics/metrics_logger.h"
 #include "api/test/track_id_stream_info_map.h"
 #include "api/units/time_delta.h"
 #include "rtc_base/synchronization/mutex.h"
@@ -40,7 +40,7 @@
   DefaultAudioQualityAnalyzer()
       : DefaultAudioQualityAnalyzer(/*metrics_logger=*/nullptr) {}
   explicit DefaultAudioQualityAnalyzer(
-      test::MetricsLoggerAndExporter* const metrics_logger)
+      test::MetricsLogger* const metrics_logger)
       : metrics_logger_(metrics_logger) {}
 
   void Start(std::string test_case_name,
@@ -72,7 +72,7 @@
                     const std::string& unit,
                     webrtc::test::ImproveDirection improve_direction) const;
 
-  test::MetricsLoggerAndExporter* const metrics_logger_;
+  test::MetricsLogger* const metrics_logger_;
 
   std::string test_case_name_;
   TrackIdStreamInfoMap* analyzer_helper_;
diff --git a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc
index fb294fb..95a73b3 100644
--- a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc
+++ b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc
@@ -133,7 +133,7 @@
 
 DefaultVideoQualityAnalyzer::DefaultVideoQualityAnalyzer(
     webrtc::Clock* clock,
-    test::MetricsLoggerAndExporter* metrics_logger,
+    test::MetricsLogger* metrics_logger,
     DefaultVideoQualityAnalyzerOptions options)
     : options_(options),
       clock_(clock),
diff --git a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.h b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.h
index c1b7fe8..e26d7b4 100644
--- a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.h
+++ b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.h
@@ -22,7 +22,7 @@
 
 #include "api/array_view.h"
 #include "api/numerics/samples_stats_counter.h"
-#include "api/test/metrics/metrics_logger_and_exporter.h"
+#include "api/test/metrics/metrics_logger.h"
 #include "api/test/video_quality_analyzer_interface.h"
 #include "api/units/data_size.h"
 #include "api/units/timestamp.h"
@@ -51,7 +51,7 @@
       webrtc::Clock* clock,
       DefaultVideoQualityAnalyzerOptions options = {});
   DefaultVideoQualityAnalyzer(webrtc::Clock* clock,
-                              test::MetricsLoggerAndExporter* metrics_logger,
+                              test::MetricsLogger* metrics_logger,
                               DefaultVideoQualityAnalyzerOptions options = {});
   ~DefaultVideoQualityAnalyzer() override;
 
@@ -152,7 +152,7 @@
 
   const DefaultVideoQualityAnalyzerOptions options_;
   webrtc::Clock* const clock_;
-  test::MetricsLoggerAndExporter* const metrics_logger_;
+  test::MetricsLogger* const metrics_logger_;
 
   std::string test_label_;
 
diff --git a/test/pc/e2e/analyzer/video/default_video_quality_analyzer_metric_names_test.cc b/test/pc/e2e/analyzer/video/default_video_quality_analyzer_metric_names_test.cc
index a54bf2f..6929145 100644
--- a/test/pc/e2e/analyzer/video/default_video_quality_analyzer_metric_names_test.cc
+++ b/test/pc/e2e/analyzer/video/default_video_quality_analyzer_metric_names_test.cc
@@ -16,7 +16,7 @@
 #include "api/rtp_packet_infos.h"
 #include "api/test/create_frame_generator.h"
 #include "api/test/metrics/metric.h"
-#include "api/test/metrics/metrics_logger_and_exporter.h"
+#include "api/test/metrics/metrics_logger.h"
 #include "api/test/metrics/stdout_metrics_exporter.h"
 #include "api/video/encoded_image.h"
 #include "api/video/i420_buffer.h"
@@ -35,10 +35,10 @@
 using ::testing::SizeIs;
 using ::testing::UnorderedElementsAre;
 
+using ::webrtc::test::DefaultMetricsLogger;
 using ::webrtc::test::ImprovementDirection;
 using ::webrtc::test::Metric;
 using ::webrtc::test::MetricsExporter;
-using ::webrtc::test::MetricsLoggerAndExporter;
 using ::webrtc::test::StdoutMetricsExporter;
 using ::webrtc::test::Unit;
 
@@ -165,10 +165,7 @@
                                        /*num_squares=*/absl::nullopt);
 
   DefaultVideoQualityAnalyzerOptions options = AnalyzerOptionsForTest();
-  std::vector<std::unique_ptr<MetricsExporter>> exporters;
-  exporters.push_back(std::make_unique<StdoutMetricsExporter>());
-  MetricsLoggerAndExporter metrics_logger(Clock::GetRealTimeClock(),
-                                          std::move(exporters));
+  DefaultMetricsLogger metrics_logger(Clock::GetRealTimeClock());
   DefaultVideoQualityAnalyzer analyzer(Clock::GetRealTimeClock(),
                                        &metrics_logger, options);
   analyzer.Start("test_case", std::vector<std::string>{"alice", "bob"},
@@ -329,10 +326,7 @@
                                        /*num_squares=*/absl::nullopt);
 
   DefaultVideoQualityAnalyzerOptions options = AnalyzerOptionsForTest();
-  std::vector<std::unique_ptr<MetricsExporter>> exporters;
-  exporters.push_back(std::make_unique<StdoutMetricsExporter>());
-  MetricsLoggerAndExporter metrics_logger(Clock::GetRealTimeClock(),
-                                          std::move(exporters));
+  DefaultMetricsLogger metrics_logger(Clock::GetRealTimeClock());
   DefaultVideoQualityAnalyzer analyzer(Clock::GetRealTimeClock(),
                                        &metrics_logger, options);
   analyzer.Start("test_case",
@@ -628,10 +622,7 @@
                                        /*num_squares=*/absl::nullopt);
 
   DefaultVideoQualityAnalyzerOptions options = AnalyzerOptionsForTest();
-  std::vector<std::unique_ptr<MetricsExporter>> exporters;
-  exporters.push_back(std::make_unique<StdoutMetricsExporter>());
-  MetricsLoggerAndExporter metrics_logger(Clock::GetRealTimeClock(),
-                                          std::move(exporters));
+  DefaultMetricsLogger metrics_logger(Clock::GetRealTimeClock());
   DefaultVideoQualityAnalyzer analyzer(Clock::GetRealTimeClock(),
                                        &metrics_logger, options);
   analyzer.Start("test_case",
diff --git a/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.h b/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.h
index bab97e9..5d3d2ad 100644
--- a/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.h
+++ b/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.h
@@ -16,7 +16,7 @@
 
 #include "absl/strings/string_view.h"
 #include "api/numerics/samples_stats_counter.h"
-#include "api/test/metrics/metrics_logger_and_exporter.h"
+#include "api/test/metrics/metrics_logger.h"
 #include "api/test/peerconnection_quality_test_fixture.h"
 #include "api/test/track_id_stream_info_map.h"
 #include "api/units/data_size.h"
@@ -40,7 +40,7 @@
       : VideoQualityMetricsReporter(clock, /*metrics_logger=*/nullptr) {}
   explicit VideoQualityMetricsReporter(
       Clock* const clock,
-      test::MetricsLoggerAndExporter* const metrics_logger)
+      test::MetricsLogger* const metrics_logger)
       : clock_(clock), metrics_logger_(metrics_logger) {}
   ~VideoQualityMetricsReporter() override = default;
 
@@ -73,7 +73,7 @@
   Timestamp Now() const { return clock_->CurrentTime(); }
 
   Clock* const clock_;
-  test::MetricsLoggerAndExporter* const metrics_logger_;
+  test::MetricsLogger* const metrics_logger_;
 
   std::string test_case_name_;
   absl::optional<Timestamp> start_time_;
diff --git a/test/pc/e2e/cross_media_metrics_reporter.h b/test/pc/e2e/cross_media_metrics_reporter.h
index fbb90b2..f43d80b 100644
--- a/test/pc/e2e/cross_media_metrics_reporter.h
+++ b/test/pc/e2e/cross_media_metrics_reporter.h
@@ -17,7 +17,7 @@
 #include "absl/strings/string_view.h"
 #include "absl/types/optional.h"
 #include "api/numerics/samples_stats_counter.h"
-#include "api/test/metrics/metrics_logger_and_exporter.h"
+#include "api/test/metrics/metrics_logger.h"
 #include "api/test/peerconnection_quality_test_fixture.h"
 #include "api/test/track_id_stream_info_map.h"
 #include "api/units/timestamp.h"
@@ -32,8 +32,7 @@
  public:
   CrossMediaMetricsReporter()
       : CrossMediaMetricsReporter(/*metrics_logger=*/nullptr) {}
-  explicit CrossMediaMetricsReporter(
-      test::MetricsLoggerAndExporter* metrics_logger)
+  explicit CrossMediaMetricsReporter(test::MetricsLogger* metrics_logger)
       : metrics_logger_(metrics_logger) {}
   ~CrossMediaMetricsReporter() override = default;
 
@@ -62,7 +61,7 @@
   std::string GetTestCaseName(const std::string& stream_label,
                               const std::string& sync_group) const;
 
-  test::MetricsLoggerAndExporter* const metrics_logger_;
+  test::MetricsLogger* const metrics_logger_;
 
   std::string test_case_name_;
   const TrackIdStreamInfoMap* reporter_helper_;
diff --git a/test/pc/e2e/network_quality_metrics_reporter.h b/test/pc/e2e/network_quality_metrics_reporter.h
index 63b35e9..db62c26 100644
--- a/test/pc/e2e/network_quality_metrics_reporter.h
+++ b/test/pc/e2e/network_quality_metrics_reporter.h
@@ -15,7 +15,7 @@
 #include <string>
 
 #include "absl/strings/string_view.h"
-#include "api/test/metrics/metrics_logger_and_exporter.h"
+#include "api/test/metrics/metrics_logger.h"
 #include "api/test/network_emulation_manager.h"
 #include "api/test/peerconnection_quality_test_fixture.h"
 #include "api/test/track_id_stream_info_map.h"
@@ -35,7 +35,7 @@
                                       /*metrics_logger=*/nullptr) {}
   NetworkQualityMetricsReporter(EmulatedNetworkManagerInterface* alice_network,
                                 EmulatedNetworkManagerInterface* bob_network,
-                                test::MetricsLoggerAndExporter* metrics_logger)
+                                test::MetricsLogger* metrics_logger)
       : alice_network_(alice_network),
         bob_network_(bob_network),
         metrics_logger_(metrics_logger) {}
@@ -73,7 +73,7 @@
 
   EmulatedNetworkManagerInterface* const alice_network_;
   EmulatedNetworkManagerInterface* const bob_network_;
-  test::MetricsLoggerAndExporter* const metrics_logger_;
+  test::MetricsLogger* const metrics_logger_;
   Mutex lock_;
   std::map<std::string, PCStats> pc_stats_ RTC_GUARDED_BY(lock_);
 };
diff --git a/test/pc/e2e/peer_connection_quality_test.cc b/test/pc/e2e/peer_connection_quality_test.cc
index 8b7e5c6..af38176 100644
--- a/test/pc/e2e/peer_connection_quality_test.cc
+++ b/test/pc/e2e/peer_connection_quality_test.cc
@@ -142,7 +142,7 @@
     TimeController& time_controller,
     std::unique_ptr<AudioQualityAnalyzerInterface> audio_quality_analyzer,
     std::unique_ptr<VideoQualityAnalyzerInterface> video_quality_analyzer,
-    test::MetricsLoggerAndExporter* metrics_logger)
+    test::MetricsLogger* metrics_logger)
     : time_controller_(time_controller),
       task_queue_factory_(time_controller_.CreateTaskQueueFactory()),
       test_case_name_(std::move(test_case_name)),
diff --git a/test/pc/e2e/peer_connection_quality_test.h b/test/pc/e2e/peer_connection_quality_test.h
index 94b2178..532cec3 100644
--- a/test/pc/e2e/peer_connection_quality_test.h
+++ b/test/pc/e2e/peer_connection_quality_test.h
@@ -18,7 +18,7 @@
 #include "absl/strings/string_view.h"
 #include "api/task_queue/task_queue_factory.h"
 #include "api/test/audio_quality_analyzer_interface.h"
-#include "api/test/metrics/metrics_logger_and_exporter.h"
+#include "api/test/metrics/metrics_logger.h"
 #include "api/test/peerconnection_quality_test_fixture.h"
 #include "api/test/time_controller.h"
 #include "api/units/time_delta.h"
@@ -62,7 +62,7 @@
       TimeController& time_controller,
       std::unique_ptr<AudioQualityAnalyzerInterface> audio_quality_analyzer,
       std::unique_ptr<VideoQualityAnalyzerInterface> video_quality_analyzer,
-      test::MetricsLoggerAndExporter* metrics_logger);
+      test::MetricsLogger* metrics_logger);
 
   ~PeerConnectionE2EQualityTest() override = default;
 
@@ -124,7 +124,7 @@
   std::unique_ptr<EncodedImageDataPropagator> encoded_image_data_propagator_;
   std::unique_ptr<AudioQualityAnalyzerInterface> audio_quality_analyzer_;
   std::unique_ptr<TestActivitiesExecutor> executor_;
-  test::MetricsLoggerAndExporter* const metrics_logger_;
+  test::MetricsLogger* const metrics_logger_;
 
   std::vector<std::unique_ptr<PeerConfigurerImpl>> peer_configurations_;
   std::vector<PeerHandleImpl> peer_handles_;
diff --git a/test/pc/e2e/peer_connection_quality_test_metric_names_test.cc b/test/pc/e2e/peer_connection_quality_test_metric_names_test.cc
index 804d089..b82850b 100644
--- a/test/pc/e2e/peer_connection_quality_test_metric_names_test.cc
+++ b/test/pc/e2e/peer_connection_quality_test_metric_names_test.cc
@@ -12,7 +12,7 @@
 
 #include "api/test/create_network_emulation_manager.h"
 #include "api/test/create_peer_connection_quality_test_frame_generator.h"
-#include "api/test/metrics/metrics_logger_and_exporter.h"
+#include "api/test/metrics/metrics_logger.h"
 #include "api/test/metrics/stdout_metrics_exporter.h"
 #include "api/test/network_emulation_manager.h"
 #include "api/test/peerconnection_quality_test_fixture.h"
@@ -28,10 +28,10 @@
 
 using ::testing::UnorderedElementsAre;
 
+using ::webrtc::test::DefaultMetricsLogger;
 using ::webrtc::test::ImprovementDirection;
 using ::webrtc::test::Metric;
 using ::webrtc::test::MetricsExporter;
-using ::webrtc::test::MetricsLoggerAndExporter;
 using ::webrtc::test::StdoutMetricsExporter;
 using ::webrtc::test::Unit;
 using RunParams =
@@ -103,10 +103,8 @@
      ExportedMetricsHasCorrectName) {
   std::unique_ptr<NetworkEmulationManager> network_emulation =
       CreateNetworkEmulationManager(TimeMode::kSimulated);
-  std::vector<std::unique_ptr<MetricsExporter>> exporters;
-  exporters.push_back(std::make_unique<StdoutMetricsExporter>());
-  MetricsLoggerAndExporter metrics_logger(
-      network_emulation->time_controller()->GetClock(), std::move(exporters));
+  DefaultMetricsLogger metrics_logger(
+      network_emulation->time_controller()->GetClock());
   PeerConnectionE2EQualityTest fixture(
       "test_case", *network_emulation->time_controller(),
       /*audio_quality_analyzer=*/nullptr, /*video_quality_analyzer=*/nullptr,
diff --git a/test/pc/e2e/stats_based_network_quality_metrics_reporter.h b/test/pc/e2e/stats_based_network_quality_metrics_reporter.h
index f362c76..e30dda4 100644
--- a/test/pc/e2e/stats_based_network_quality_metrics_reporter.h
+++ b/test/pc/e2e/stats_based_network_quality_metrics_reporter.h
@@ -21,7 +21,7 @@
 
 #include "absl/strings/string_view.h"
 #include "api/numerics/samples_stats_counter.h"
-#include "api/test/metrics/metrics_logger_and_exporter.h"
+#include "api/test/metrics/metrics_logger.h"
 #include "api/test/network_emulation/network_emulation_interfaces.h"
 #include "api/test/network_emulation_manager.h"
 #include "api/test/peerconnection_quality_test_fixture.h"
@@ -48,7 +48,7 @@
   StatsBasedNetworkQualityMetricsReporter(
       std::map<std::string, std::vector<EmulatedEndpoint*>> peer_endpoints,
       NetworkEmulationManager* network_emulation,
-      test::MetricsLoggerAndExporter* metrics_logger)
+      test::MetricsLogger* metrics_logger)
       : collector_(std::move(peer_endpoints), network_emulation),
         clock_(network_emulation->time_controller()->GetClock()),
         metrics_logger_(metrics_logger) {}
@@ -125,7 +125,7 @@
 
   NetworkLayerStatsCollector collector_;
   Clock* const clock_;
-  test::MetricsLoggerAndExporter* const metrics_logger_;
+  test::MetricsLogger* const metrics_logger_;
 
   std::string test_case_name_;
   Timestamp start_time_ = Timestamp::MinusInfinity();
