Nuevo registro de logs en Symfony

Aquí explicaré como configurar un nuevo registro de logs en Symfony, pudiendo así separar los logs según nuestro criterio.

En el fichero app/config/config.yml configuramos los parámetros de nuestro nuevo log, definiendo el canal, el nombre que le queremos asignar y el fichero en el cual se escribirán los logs.

# Log Configuration
monolog:
    channels: [mylogchannel]
    handlers:
        mylogchannel:
            level: debug
            type: stream
            path: '%kernel.logs_dir%/mylogfile.log'
            channels: [mylogchannel]

Ahora para utilizarlo en el controlador primero debemos coger el servicio “logger” y a continuación introducir nuestro “handler” previamente creado para que así los nuevos registros de log se escriban en el fichero que se ha configurado.

$logger = $this->get('logger');
$loggerHandler = $this->get('monolog.handler.mylogchannel');

$logger->setHandlers(array($loggerHandler));

$logger->info('I just got the logger');
$logger->error('An error occurred');
$logger->debug('An error occurred');

Para utilizarlo dentro de un servicio:

services:
    my_service:
        class: Fully\Qualified\Loader\Class\Name
        arguments: ['@logger']
        tags:
            - { name: monolog.logger, channel: mylogchannel }

Aviso: al usarlo de esta manera en el controlador los logs solo serán escritos en el fichero indicado puesto que lo indicamos con el “handler” y en el servicio al indicarlo con el “channel” todos los logs que recogan este canal aparecerá los logs en su fichero.

A continuación dejo un enlace a la web oficial de como crear un nuevo registro de logs en Symfony, para más información: symfony.com

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *