Saltar al contenido
Home » Blog » Cómo debuggear con logs en Magento 2

Cómo debuggear con logs en Magento 2

Instalar modulo magento 2 composer

Los ficheros .log son archivos de información del sistema que pueden ser examinados en el futuro. Los logs de errores son una de las instancias considerables de tales eventos.

Los desarrolladores están familiarizados con la búsqueda de los errores y con los pasos que implica llegar a una solución que funcione. Los logs personalizados pueden facilitar la depuración. Hacen más sencillo identificar un error y la causa del problema. Estos registros ayudan a conocer los procesos del sistema de Magento 2.

A veces, los desarrolladores necesitamos comprobar algunos datos en Magento 2 pero no quieren que los datos se impriman en el sitio web. Para cumplir este objetivo, escriben en los archivos de log. Veamos los pasos para crear logs en Magento 2.

Pasos para crear logs en Magento 2

Antes de seguir cualquiera de estos métodos asegúrate de que tu tienda Magento está en el modo de desarrollador. Compruebe si tu tienda está en modo de producción y ejecuta este comando:

php bin/magento config:set dev/debug/debug_logging 1

Hay tres maneras de crear logs en la tienda de Magento.

Método 1: Imprimir logs temporales en un nuevo archivo

Agrega este código a cualquier archivo PHP nuevo en cualquier carpeta o directorio.

<?php 
    $writer = new \Zend\Log\Writer\Stream(BP . '/var/log/mylogfile.log');
    $logger = new \Zend\Log\Logger();
    $logger->addWriter($writer);
    $logger->info('Esto es un texto simple de log'); //Para imprimir un texto simple
    $logger->info(print_r($myarray, true)); //Para imprimir un array
?>

Método 2: Uso de Logger Interface

Crea un archivo en la siguiente ruta:

app\code\Vendor\Extension\Block\Printlog.php 

Ahora, añade el siguiente código:

<?php
namespace Vendor\Extension\Block;
use Psr\Log\LoggerInterface;
class  Printlog
{
    protected $logger;
    public function __construct(LoggerInterface $logger;)
    {
        $this->logger = $logger;
    }
    public function logExample()
    {
        //Print log in var/log/system.log
        $this->logger->info('Testing Info');
        //Output: [2022-02-01 13:33:42] main.INFO: Testing Info [] []
        //Print log in var/log/debug.log
        $this->logger->debug('Testing Debug');
        //Output: [2022-02-01 13:33:42] main.DEBUG: Testing Debug {"is_exception":false} []
        // Write to default log file: var/log/system.log
        $this->logger->notice('Testing Notice');
        //Output: [2022-02-01 13:33:42] main.NOTICE: Testing Notice [] []
        // Write to default log file: var/log/system.log
        $this->logger->alert('Testing Alert');
        //Output: [2022-02-01 13:33:42] main.ALERT: Testing Alert [] []
        // Write to default log file: var/log/system.log
        $this->logger->error('Testing Error'); 
        //Output: [2022-02-01 13:33:42] main.ERROR: Testing Error [] []
        // Write to default log file: var/log/system.log
        $this->logger->critical('Testing Critical Error');
        //Output: [2022-02-01 13:33:42] main.CRITICAL: Testing Critical Error [] []
    }
}

Método 3: Usando ObjectManager

Agrega este código a cualquier archivo PHP nuevo en cualquier carpeta.

<?php
    $objectmanager = \Magento\Framework\App\ObjectManager::getInstance();
    $objectmanager->get('Psr\Log\LoggerInterface')->info('Testing Log'); //Print log in var/log/system.log
    $objectmanager->get('Psr\Log\LoggerInterface')->debug('Testing Log'); //Print log in var/log/debug.log
?>

Aquí te dejamos un video con nuestras soluciones favoritas

Conclusión

Para crear logs, puedes utilizar cualquiera de los métodos mencionados anteriormente. Por último, pero no menos importante, si has encontrado la información útil, por favor deja tu valiosa opinión en el cuadro de comentarios de abajo, y si tienes alguna pregunta al aplicar el artículo anterior, compártelo con nosotros. Gracias!

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)
Etiquetas:

Deja una respuesta

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