Cuando desarrollamos una aplicación, web coorporativa o tienda online siempre nos resulta cómodo guardar registros o logs de lo que estamos haciendo o valores de variables en determinados momento de la ejecución de nuestro código. Esto nos resulta muy útil en caso de no obtener lo que queremos o para comprobar resultados que nos puedan resultar raros, aunque también para reafirmanos de que todo se está cargando correctamente. Cada lenguaje y framework suele tener su propia forma de gestionar los logs. Por ejemplo, en javascript tenemos el console.log(foo); que nos imprimirá en la consola de desarrollador el valor que tiene la variable foo cuando se ejecuta nuestra aplicación.
Crear logs en Magento 1
Os adelantando ya que en esta versión de Magento era mucho más sencillo, ya que simplemente con un:
Mage::log('Mensaje', Zend_Log::INFO, 'nombre-de-log.log');
Ya tendríamos en la ruta var/log/nombre-de-log.log algo parecido a esto guardado 2020-04-01T21:11:12+00:00 DEBUG (7): Mensaje, pudiendo guardar también cualquier cosa que queramos y no solo texto plano.
Creación de logs en Magento 2
Si bien en Magento 1 únicamente teníamos que llamar a una función y esta se encargaba de todo, en Magento 2, tenemos que hacer esto mismo por parte. Creamos un objeto writer para trabajar con un archivo y después de eso creamos un objeto logger sobre el cual le indicamos que guarde lo que le digamos sobre el writer
$writer = new \Zend\Log\Writer\Stream(BP . '/var/log/nombre-de-log.log');
$logger = new \Zend\Log\Logger();
$logger->addWriter($writer);
$logger->info('Mensaje');
Y de la misma forma tendremos en la ruta /var/log/nombre-de-log.log nuestro archivo log con lo que nosotros guardemos ahí, permitiéndonos esto controlar en cada momento nuestras variables y depurarlas. Además, tal y como comentábamos, esta función nos permite tanto guardar texto plano, ya sea para simplemente comprobar que pasamos por cierta parte de código, como variables sencillas, para ver su valor, o incluso arrays o objetos, facilitándonos mucho la labor de depuración de nuestro código