diff --git a/api/rtc_event_log/BUILD.gn b/api/rtc_event_log/BUILD.gn
index 274c6ca..073c91a 100644
--- a/api/rtc_event_log/BUILD.gn
+++ b/api/rtc_event_log/BUILD.gn
@@ -38,9 +38,7 @@
   deps = [
     ":rtc_event_log",
     "..:field_trials_view",
-    "../../rtc_base:checks",
     "../../rtc_base/system:rtc_export",
-    "../../system_wrappers:field_trial",
     "../environment",
     "../task_queue",
   ]
diff --git a/api/rtc_event_log/rtc_event_log_factory.cc b/api/rtc_event_log/rtc_event_log_factory.cc
index c77011a..30fc6f1 100644
--- a/api/rtc_event_log/rtc_event_log_factory.cc
+++ b/api/rtc_event_log/rtc_event_log_factory.cc
@@ -11,11 +11,11 @@
 #include "api/rtc_event_log/rtc_event_log_factory.h"
 
 #include <memory>
-#include <utility>
 
+#include "absl/base/nullability.h"
+#include "api/environment/environment.h"
 #include "api/field_trials_view.h"
-#include "rtc_base/checks.h"
-#include "system_wrappers/include/field_trial.h"
+#include "api/rtc_event_log/rtc_event_log.h"
 
 #ifdef WEBRTC_ENABLE_RTC_EVENT_LOG
 #include "logging/rtc_event_log/rtc_event_log_impl.h"
@@ -23,11 +23,6 @@
 
 namespace webrtc {
 
-RtcEventLogFactory::RtcEventLogFactory(TaskQueueFactory* task_queue_factory)
-    : task_queue_factory_(task_queue_factory) {
-  RTC_DCHECK(task_queue_factory_);
-}
-
 absl::Nonnull<std::unique_ptr<RtcEventLog>> RtcEventLogFactory::Create(
     const Environment& env) const {
 #ifndef WEBRTC_ENABLE_RTC_EVENT_LOG
@@ -45,23 +40,4 @@
 #endif
 }
 
-std::unique_ptr<RtcEventLog> RtcEventLogFactory::Create(
-    RtcEventLog::EncodingType encoding_type) const {
-#ifdef WEBRTC_ENABLE_RTC_EVENT_LOG
-  RTC_DCHECK(task_queue_factory_);
-  if (field_trial::IsEnabled("WebRTC-RtcEventLogKillSwitch")) {
-    return std::make_unique<RtcEventLogNull>();
-  }
-  return std::make_unique<RtcEventLogImpl>(
-      RtcEventLogImpl::CreateEncoder(encoding_type), task_queue_factory_);
-#else
-  return std::make_unique<RtcEventLogNull>();
-#endif
-}
-
-std::unique_ptr<RtcEventLog> RtcEventLogFactory::CreateRtcEventLog(
-    RtcEventLog::EncodingType encoding_type) {
-  return Create(encoding_type);
-}
-
 }  // namespace webrtc
diff --git a/api/rtc_event_log/rtc_event_log_factory.h b/api/rtc_event_log/rtc_event_log_factory.h
index f0cf6d7..21a670e 100644
--- a/api/rtc_event_log/rtc_event_log_factory.h
+++ b/api/rtc_event_log/rtc_event_log_factory.h
@@ -29,19 +29,11 @@
   // TODO(bugs.webrtc.org/15656): deprecate and delete constructor taking
   // task queue factory in favor of using task queue factory provided through
   // the Environment parameter in Create function.
-  explicit RtcEventLogFactory(TaskQueueFactory* task_queue_factory);
+  explicit RtcEventLogFactory(TaskQueueFactory* task_queue_factory) {}
   ~RtcEventLogFactory() override = default;
 
   absl::Nonnull<std::unique_ptr<RtcEventLog>> Create(
       const Environment& env) const override;
-
-  std::unique_ptr<RtcEventLog> Create(
-      RtcEventLog::EncodingType encoding_type) const override;
-  std::unique_ptr<RtcEventLog> CreateRtcEventLog(
-      RtcEventLog::EncodingType encoding_type) override;
-
- private:
-  TaskQueueFactory* const task_queue_factory_ = nullptr;
 };
 
 }  // namespace webrtc
diff --git a/api/rtc_event_log/rtc_event_log_factory_interface.h b/api/rtc_event_log/rtc_event_log_factory_interface.h
index d0374fd..3135584 100644
--- a/api/rtc_event_log/rtc_event_log_factory_interface.h
+++ b/api/rtc_event_log/rtc_event_log_factory_interface.h
@@ -28,13 +28,6 @@
 
   virtual absl::Nonnull<std::unique_ptr<RtcEventLog>> Create(
       const Environment& env) const = 0;
-
-  // TODO(bugs.webrtc.org/15656): Delete functions below when all usage is
-  // migrated to the Create(const Environment&) function above.
-  virtual std::unique_ptr<RtcEventLog> Create(
-      RtcEventLog::EncodingType encoding_type) const = 0;
-  [[deprecated]] virtual std::unique_ptr<RtcEventLog> CreateRtcEventLog(
-      RtcEventLog::EncodingType encoding_type) = 0;
 };
 
 }  // namespace webrtc
diff --git a/logging/rtc_event_log/fake_rtc_event_log_factory.cc b/logging/rtc_event_log/fake_rtc_event_log_factory.cc
index 9a27b63..bacc3cd 100644
--- a/logging/rtc_event_log/fake_rtc_event_log_factory.cc
+++ b/logging/rtc_event_log/fake_rtc_event_log_factory.cc
@@ -17,26 +17,11 @@
 
 namespace webrtc {
 
-absl::Nonnull<std::unique_ptr<FakeRtcEventLog>>
-FakeRtcEventLogFactory::CreateFake() const {
+absl::Nonnull<std::unique_ptr<RtcEventLog>> FakeRtcEventLogFactory::Create(
+    const Environment& /*env*/) const {
   auto fake_event_log = std::make_unique<FakeRtcEventLog>();
   const_cast<FakeRtcEventLog*&>(last_log_created_) = fake_event_log.get();
   return fake_event_log;
 }
 
-std::unique_ptr<RtcEventLog> FakeRtcEventLogFactory::Create(
-    const Environment& /*env*/) const {
-  return CreateFake();
-}
-
-std::unique_ptr<RtcEventLog> FakeRtcEventLogFactory::Create(
-    RtcEventLog::EncodingType /*encoding_type*/) const {
-  return CreateFake();
-}
-
-std::unique_ptr<RtcEventLog> FakeRtcEventLogFactory::CreateRtcEventLog(
-    RtcEventLog::EncodingType /*encoding_type*/) {
-  return CreateFake();
-}
-
 }  // namespace webrtc
diff --git a/logging/rtc_event_log/fake_rtc_event_log_factory.h b/logging/rtc_event_log/fake_rtc_event_log_factory.h
index 7110555..0d6d076 100644
--- a/logging/rtc_event_log/fake_rtc_event_log_factory.h
+++ b/logging/rtc_event_log/fake_rtc_event_log_factory.h
@@ -28,17 +28,9 @@
   absl::Nonnull<std::unique_ptr<RtcEventLog>> Create(
       const Environment& env) const override;
 
-  std::unique_ptr<RtcEventLog> Create(
-      RtcEventLog::EncodingType encoding_type) const override;
-
-  std::unique_ptr<RtcEventLog> CreateRtcEventLog(
-      RtcEventLog::EncodingType encoding_type) override;
-
   FakeRtcEventLog* last_log_created() { return last_log_created_; }
 
  private:
-  absl::Nonnull<std::unique_ptr<FakeRtcEventLog>> CreateFake() const;
-
   FakeRtcEventLog* last_log_created_ = nullptr;
 };
 
