Esta web utiliza cookies, puedes ver nuestra política de cookies aquí. Si continuas navegando estás aceptándola

Monolog en symfony3.4


Cuando una aplicación web falla es indispensable poder logear ciertas variables para ser capaces de debugear el código, en este artículo explicaré como hacerlo con symfony3.4 y monolog una librería de logging muy extendida entre programadores PHP.

 

 

 

Si no tenemos symfony y composer instalados procedemos a ello:

curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony
chmod a+x /usr/local/bin/symfony
curl -sS https://getcomposer.org/installer -o composer-setup.php
php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Vamos a seguir el ejemplo báscio luckyNumber de la web de symfony.

Creamos el proyecto:

symfony new luckyNumber 3.4

Creamos el controlador que generará el luckynumber y lo logeará en el fichero de logs:

cd luckyNumber
vi src/AppBundle/Controller/LuckyController.php

<?php
// src/AppBundle/Controller/LuckyController.php
namespace AppBundle\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

class LuckyController extends Controller
{
    /**
     * @Route("/lucky/number")
     */
    public function numberAction()
    {
    
        $logger = new Logger('debugLogger');
        $logDir = $this->container->get('kernel')->getLogDir();
        $logger->pushHandler(new StreamHandler($logDir.'/debugLog.log', Logger::NOTICE));
        $logger->notice('debugLogger is now ready');

        $number = random_int(0, 100);
        $logger->notice(sprintf('luckyNumber: %s', $number));

        return new Response(
            '<html><body>Lucky number: '.$number.'</body></html>'
        );
    }
}

Arrancamos el servidor web integrado en symfony:

php bin/console server:run

Comprobamos que el controlador funciona correctamente generando el lucky number:

http://localhost:8000/lucky/number

Podremos ver como logeamos el lucky number en nuestro fichero de log:

tail -f var/logs/debugLog.log

[2019-08-02 17:26:48] debugLogger.NOTICE: debugLogger is now ready [] []
[2019-08-02 17:26:48] debugLogger.NOTICE: luckyNumber: 66 [] []

Autor: Kr0m -- 02/08/2019 20:19:13