MonologServiceProvider

El proveedor MonologServiceProvider proporciona un mecanismo de registro predeterminado a través de la biblioteca Monolog de Jordi Boggiano’s.

Este registrará las peticiones y errores y te permite llevar la bitácora de tu aplicación. Este te permite depurar y monitorear el comportamiento, incluso en producción.

Parámetros

  • monolog.logfile: Archivo donde escribir los registros.
  • monolog.level (opcional): El nivel de registro por omisión es DEBUG. Debe ser uno de Logger::DEBUG, Logger::INFO, Logger::WARNING, Logger::ERROR. DEBUG registra todo, INFO registrará todo excepto DEBUG, etc.
  • monolog.name (opcional): Nombre del canal de Monplog, por omisión es myapp.

Servicios

  • monolog: La instancia del registro cronológico de Monolog.

    Ejemplo de uso:

    $app['monolog']->addDebug('Probando el registro cronológico de eventos de Monolog.');
    

Registrando

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

Nota

Monolog viene con el archivo “gordo” de Silex pero no en el normal. Si estás usando Composer, añádelo como dependencia en tu archivo composer.json:

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

Uso

El proveedor MonologServiceProvider ofrece un servicio monolog. Lo puedes utilizar para agregar entradas al registro a cualquier nivel de registro cronológico a través de addDebug(), addInfo(), addWarning() y addError():

use Symfony\Component\HttpFoundation\Response;

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

    $app['monolog']->addInfo(sprintf("User '%s' registered.", $username));

    return new Response('', 201);
});

Personalizando

Puedes configurar Monolog (tal como añadir o cambiar controladores) antes de usarlo extendiendo el servicio monolog:

$app['monolog'] = $app->share($app->extend('monolog', function($monolog, $app) {
    $monolog->pushHandler(...);

    return $monolog;
}));

Peculiaridades

Silex\Application\MonologTrait añade los siguientes atajos:

  • log: Registra un mensaje.
$app->log(sprintf("User '%s' registered.", $username));

Para más información, consulta la documentación de Monolog.

Bifúrcame en GitHub