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']);