Monolog ======= The *MonologServiceProvider* provides a default logging mechanism through Jordi Boggiano's `Monolog `_ library. It will log requests and errors and allow you to add logging to your application. This allows you to debug and monitor the behaviour, even in production. Parameters ---------- * **monolog.logfile**: File where logs are written to. * **monolog.bubble** (optional): Whether the messages that are handled can bubble up the stack or not. * **monolog.permission** (optional): File permissions default (null), nothing change. * **monolog.level** (optional): Level of logging, defaults to ``DEBUG``. Must be one of ``Logger::DEBUG``, ``Logger::INFO``, ``Logger::WARNING``, ``Logger::ERROR``. ``DEBUG`` will log everything, ``INFO`` will log everything except ``DEBUG``, etc. In addition to the ``Logger::`` constants, it is also possible to supply the level in string form, for example: ``"DEBUG"``, ``"INFO"``, ``"WARNING"``, ``"ERROR"``. PSR-3 log levels from ``\Psr\Log\LogLevel::`` constants are also supported. * **monolog.name** (optional): Name of the monolog channel, defaults to ``myapp``. * **monolog.exception.logger_filter** (optional): An anonymous function that returns an error level for on uncaught exception that 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 -------- * **monolog**: The monolog logger instance. Example usage:: $app['monolog']->debug('Testing the Monolog logging.'); * **monolog.listener**: An event listener to log requests, responses and errors. Registering ----------- .. code-block:: php $app->register(new Silex\Provider\MonologServiceProvider(), array( 'monolog.logfile' => __DIR__.'/development.log', )); .. note:: Add Monolog as a dependency: .. code-block:: bash composer require monolog/monolog Usage ----- The MonologServiceProvider provides a ``monolog`` service. You can use it to add log entries for any logging level through ``debug()``, ``info()``, ``warning()`` and ``error()``:: use Symfony\Component\HttpFoundation\Response; $app->post('/user', function () use ($app) { // ... $app['monolog']->info(sprintf("User '%s' registered.", $username)); return new Response('', 201); }); Customization ------------- You can configure Monolog (like adding or changing the handlers) before using it by extending the ``monolog`` service:: $app->extend('monolog', function($monolog, $app) { $monolog->pushHandler(...); return $monolog; }); By default, all requests, responses and errors are logged by an event listener registered as a service called `monolog.listener`. You can replace or remove this service if you want to modify or disable the logged information. Traits ------ ``Silex\Application\MonologTrait`` adds the following shortcuts: * **log**: Logs a message. .. code-block:: php $app->log(sprintf("User '%s' registered.", $username)); For more information, check out the `Monolog documentation `_.