diff --git a/doc/providers/monolog.rst b/doc/providers/monolog.rst
index a07a7a26ff97938ef15d561bea9ee533a0499a14..8a83127c3e064f01b0119bfd3087862b487ffdad 100644
--- a/doc/providers/monolog.rst
+++ b/doc/providers/monolog.rst
@@ -31,6 +31,14 @@ Parameters
 * **monolog.exception.logger_filter** (optional): An anonymous function that
   filters which exceptions should be logged.
 
+* **monolog.use_error_handler** (optional): Whether errors and uncaught exceptions
+  should be handled by the Monolog ``ErrorHandler`` class and added to the log.
+  By default the error handler is enabled unless the application ``debug`` parameter
+  is set to true.
+
+  Please note that enabling the error handler may silence some errors,
+  ignoring the PHP ``display_errors`` configuration setting.
+
 Services
 --------
 
diff --git a/src/Silex/Provider/MonologServiceProvider.php b/src/Silex/Provider/MonologServiceProvider.php
index dca322e1b4f0b98c8f16ba24fe8011239f3e62af..34654e9133a7e973fd8b077b6bd2cb3ed45a6bc7 100644
--- a/src/Silex/Provider/MonologServiceProvider.php
+++ b/src/Silex/Provider/MonologServiceProvider.php
@@ -106,11 +106,14 @@ class MonologServiceProvider implements ServiceProviderInterface, BootableProvid
         $app['monolog.permission'] = null;
         $app['monolog.exception.logger_filter'] = null;
         $app['monolog.logfile'] = null;
+        $app['monolog.use_error_handler'] = !$app['debug'];
     }
 
     public function boot(Application $app)
     {
-        ErrorHandler::register($app['monolog']);
+        if ($app['monolog.use_error_handler']) {
+            ErrorHandler::register($app['monolog']);
+        }
 
         if (isset($app['monolog.listener'])) {
             $app['dispatcher']->addSubscriber($app['monolog.listener']);