diff --git a/docs/source/solving.rst b/docs/source/solving.rst
index 1b52c02..2ad84fd 100644
--- a/docs/source/solving.rst
+++ b/docs/source/solving.rst
@@ -1522,17 +1522,6 @@
    iteration. This setting is useful when building an interactive
    application using Ceres and using an :class:`IterationCallback`.
 
-.. member:: string Solver::Options::solver_log
-
-   Default: ``empty``
-
-   If non-empty, a summary of the execution of the solver is recorded
-   to this file.  This file is used for recording and Ceres'
-   performance. Currently, only the iteration number, total time and
-   the objective function value are logged. The format of this file is
-   expected to change over time as the performance evaluation
-   framework is fleshed out.
-
 :class:`ParameterBlockOrdering`
 -------------------------------
 
diff --git a/docs/source/version_history.rst b/docs/source/version_history.rst
index b8ff6ff..45298a5 100644
--- a/docs/source/version_history.rst
+++ b/docs/source/version_history.rst
@@ -4,6 +4,16 @@
 Releases
 ========
 
+HEAD
+====
+
+Backward Incompatible API Changes
+---------------------------------
+
+#. ``Solver::Options::solver_log`` has been removed. If needed this
+   iteration callback can easily be implemented in user code.
+
+
 1.9.0
 =====
 
diff --git a/examples/bundle_adjuster.cc b/examples/bundle_adjuster.cc
index 5d9e13d..296611f 100644
--- a/examples/bundle_adjuster.cc
+++ b/examples/bundle_adjuster.cc
@@ -116,7 +116,6 @@
 DEFINE_int32(random_seed, 38401, "Random seed used to set the state "
              "of the pseudo random number generator used to generate "
              "the pertubations.");
-DEFINE_string(solver_log, "", "File to record the solver execution to.");
 DEFINE_bool(line_search, false, "Use a line search instead of trust region "
             "algorithm.");
 
@@ -320,7 +319,6 @@
   BuildProblem(&bal_problem, &problem);
   Solver::Options options;
   SetSolverOptionsFromFlags(&bal_problem, &options);
-  options.solver_log = FLAGS_solver_log;
   options.gradient_tolerance = 1e-16;
   options.function_tolerance = 1e-16;
   Solver::Summary summary;
diff --git a/include/ceres/solver.h b/include/ceres/solver.h
index a2d9834..33ffb54 100644
--- a/include/ceres/solver.h
+++ b/include/ceres/solver.h
@@ -708,10 +708,6 @@
     //
     // The solver does NOT take ownership of these pointers.
     vector<IterationCallback*> callbacks;
-
-    // If non-empty, a summary of the execution of the solver is
-    // recorded to this file.
-    string solver_log;
   };
 
   struct CERES_EXPORT Summary {
diff --git a/internal/ceres/solver_impl.cc b/internal/ceres/solver_impl.cc
index fbcaf6b..8148716 100644
--- a/internal/ceres/solver_impl.cc
+++ b/internal/ceres/solver_impl.cc
@@ -422,13 +422,6 @@
   // vector.
   program->ParameterBlocksToStateVector(parameters.data());
 
-  scoped_ptr<IterationCallback> file_logging_callback;
-  if (!options.solver_log.empty()) {
-    file_logging_callback.reset(new FileLoggingCallback(options.solver_log));
-    minimizer_options.callbacks.insert(minimizer_options.callbacks.begin(),
-                                       file_logging_callback.get());
-  }
-
   TrustRegionLoggingCallback logging_callback(
       options.minimizer_progress_to_stdout);
   if (options.logging_type != SILENT) {
@@ -494,15 +487,6 @@
   // Collect the discontiguous parameters into a contiguous state vector.
   program->ParameterBlocksToStateVector(parameters.data());
 
-  // TODO(sameeragarwal): Add support for logging the configuration
-  // and more detailed stats.
-  scoped_ptr<IterationCallback> file_logging_callback;
-  if (!options.solver_log.empty()) {
-    file_logging_callback.reset(new FileLoggingCallback(options.solver_log));
-    minimizer_options.callbacks.insert(minimizer_options.callbacks.begin(),
-                                       file_logging_callback.get());
-  }
-
   LineSearchLoggingCallback logging_callback(
       options.minimizer_progress_to_stdout);
   if (options.logging_type != SILENT) {
