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:
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:
Creamos el controlador que generará el luckynumber y lo logeará en el fichero de logs:
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:
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:
[2019-08-02 17:26:48] debugLogger.NOTICE: debugLogger is now ready [] []
[2019-08-02 17:26:48] debugLogger.NOTICE: luckyNumber: 66 [] []