MonologServiceProvider

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.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.
  • monolog.name (optional): Name of the monolog channel, defaults to myapp.

Services

  • monolog: The monolog logger instance.

    Example usage:

    $app['monolog']->addDebug('Testing the Monolog logging.');
    

Registering

$app->register(new Silex\Provider\MonologServiceProvider(), array(
    'monolog.logfile' => __DIR__.'/development.log',
));

Note

Monolog comes with the “fat” Silex archive but not with the regular one. If you are using Composer, add it as a dependency to your composer.json file:

"require": {
    "monolog/monolog": ">=1.0.0",
}

Usage

The MonologServiceProvider provides a monolog service. You can use it to add log entries for any logging level through addDebug(), addInfo(), addWarning() and addError():

use Symfony\Component\HttpFoundation\Response;

$app->post('/user', function () use ($app) {
    // ...

    $app['monolog']->addInfo(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['monolog'] = $app->share($app->extend('monolog', function($monolog, $app) {
    $monolog->pushHandler(...);

    return $monolog;
}));

Traits

Silex\Application\MonologTrait adds the following shortcuts:

  • log: Logs a message.
$app->log(sprintf("User '%s' registered.", $username));

For more information, check out the Monolog documentation.

Project Versions

Table Of Contents

Previous topic

DoctrineServiceProvider

Next topic

SessionServiceProvider

This Page