Logs personalizados Magento2

Magento 1

Los archivos Log ayudan en la depueración de cualquier función, en Magento1 era muy sencillo crear un archivo log.

Mage::log('Mensaje', Zend_Log::INFO, 'log_personalizado.log');

Magento 2.4.2 y versiones anteriores

En Magento2, primero 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/log_personalizado.log');
$logger = new \Zend\Log\Logger();
$logger->addWriter($writer);
$logger->info('Mensaje Personalizado');
// El log será creado en
/var/log/log_personalizado.log

ACTUALIZACIÓN DIC 2021

Magento 2.4.3 y superior

Magento 2.4.3. ha eliminado de su repositorio la libreria laminas/log, para poder obtener logs personalizados, se hace de la siguiente forma:

$writer = new \Zend_Log_Writer_Stream(BP . '/var/log/log_personalizado.log');
$logger = new \Zend_Log();
$logger->addWriter($writer);
$logger->info('text message');
$logger->info('Array Log'.print_r($myArray, true));

Aternativa, volver a instalar laminas/logs

Se puede volver a instalr el paquete lamias/log que ha eliminado magento pero su invocación a cambiado a la siguiente forma:

// instalar laminas/log
composer require laminas/log
//forma de uso
$writer = new \Laminas\Log\Writer\Stream(BP . '/var/log/log_personalizado.log');
$logger = new \Laminas\Log\Logger();
$logger->addWriter($writer);
$logger->info('text message');
$logger->info('Array Log'.print_r($myArray, true));