diff --git a/mojo/public/cpp/application/application_runner.h b/mojo/public/cpp/application/application_runner.h
index 0ace219..184c2de 100644
--- a/mojo/public/cpp/application/application_runner.h
+++ b/mojo/public/cpp/application/application_runner.h
@@ -7,7 +7,6 @@
 
 #include <memory>
 
-#include "mojo/public/c/environment/logger.h"
 #include "mojo/public/c/system/handle.h"
 #include "mojo/public/c/system/result.h"
 #include "mojo/public/cpp/system/macros.h"
@@ -32,14 +31,6 @@
   explicit ApplicationRunner(std::unique_ptr<ApplicationDelegate> delegate);
   ~ApplicationRunner();
 
-  // This replaces the underlying logger implementation with the one provided.
-  // This static method may only be called while |Run()| is running. |logger|
-  // must outlive the duration of this |Run()|, or until the subsequent
-  // |ApplicationRunner::SetDefaultLogger()|, which ever comes first.
-  static void SetDefaultLogger(const MojoLogger* logger);
-  // This static method may only be called while |Run()| is running.
-  static const MojoLogger* GetDefaultLogger();
-
   // Once the various parameters have been set above, use Run to initialize an
   // ApplicationImpl wired to the provided delegate, and run a RunLoop until
   // the application exits.
diff --git a/mojo/public/cpp/application/lib/application_runner.cc b/mojo/public/cpp/application/lib/application_runner.cc
index a5c87b7..c4577c0 100644
--- a/mojo/public/cpp/application/lib/application_runner.cc
+++ b/mojo/public/cpp/application/lib/application_runner.cc
@@ -8,7 +8,6 @@
 #include "mojo/public/cpp/application/application_impl.h"
 #include "mojo/public/cpp/application/application_impl_base.h"
 #include "mojo/public/cpp/environment/environment.h"
-#include "mojo/public/cpp/environment/logging.h"
 #include "mojo/public/cpp/utility/run_loop.h"
 
 namespace mojo {
@@ -29,18 +28,6 @@
   assert(!delegate_);
 }
 
-// static
-void ApplicationRunner::SetDefaultLogger(const MojoLogger* logger) {
-  MOJO_DCHECK(g_running);
-  Environment::SetDefaultLogger(logger);
-}
-
-// static
-const MojoLogger* ApplicationRunner::GetDefaultLogger() {
-  MOJO_DCHECK(g_running);
-  return Environment::GetDefaultLogger();
-}
-
 MojoResult ApplicationRunner::Run(MojoHandle app_request_handle) {
   MOJO_DCHECK(!g_running)
       << "Another ApplicationRunner::Run() is already running!";
diff --git a/mojo/services/log/cpp/log_client.h b/mojo/services/log/cpp/log_client.h
index fa860b1..3639307 100644
--- a/mojo/services/log/cpp/log_client.h
+++ b/mojo/services/log/cpp/log_client.h
@@ -14,8 +14,8 @@
 //      LogPtr log;
 //      app->ConnectToService("mojo:log", &log);
 //      mojo::log::InitializeLogger(std::move(log),
-//                                  ApplicationRunner::GetDefaultLogger());
-//      mojo::ApplicationRunner::SetDefaultLogger(mojo::log::GetLogger());
+//                                  mojo::Environment::GetDefaultLogger());
+//      mojo::Environment::SetDefaultLogger(mojo::log::GetLogger());
 //    }
 //
 //    void Quit() {
