Cursos Magento

Mage::log – Como salvar informações de Debug em arquivo

,

Publicado em 21 de agosto de 2018

Ao enfrentar algum problema em nossa loja é muito comum que comecemos a querer colocar <?php echo em tudo que é lugar.

Como já vimos neste vídeo, o XDebug é a melhor ferramenta para debugar de verdade qualquer coisa em códigos PHP e Magento. Mas as vezes só queremos adicionar um log simples, para debugar alguma coisa quando algo específico acontecer, ou mesmo algo estranho que está acontecendo em outro ambiente, logar uma integração, ou qualquer coisa nesse sentido.

Para isso o Magento vem equipado com uma classe de Log que adicionará automaticamente os seus logs na pasta var/log da sua loja.

Sintaxe Mage::log

/**
     * log facility (??)
     *
     * @param string $message
     * @param integer $level
     * @param string $file
     * @param bool $forceLog
     */
public static function log($message, $level = null, $file = '', $forceLog = false)
  • $message string contendo o que queremos logar
  • $level integer representado por uma das constantes da classe Zend_Log indicando o nível de log da informação. Ex. Zend_Log::DEBUG ou null
  • $file nome do arquivo que estará na pasta var/log do Magento
  • $forceLog true ou false. Indica se o arquivo de log e a entrada devem ser logados mesmo se as configurações do Magento estiverem com o log desabilitado.

Exemplos de uso Mage::log

Você pode adicionar a chamada ao método estático Mage::log em qualquer parte do seu código Magento (desde que, dentro das tags <?php).

Veja alguns exemplos:

Mage::log('Olá mundo',null,'magenteiro.log',true);

 
Mage::log(var_export($order->debug(),true),Zend_Log::DEBUG, 'magenteiro.log',true);

Neste segundo exemplo estou assumindo que a variável $order contém informações de um pedido (Mage_Sales_Model_Order), e invoco o método debug(), presente em quase todas as classes do Magento – em especial as que estendem a Varien_Object.

Note que também estou usando o método var_export para exportar/printar qualquer objeto para string.

Dica: Mage::log snippet no PhpStorm

Como isso é algo que uso bastante, acabei criando um Live Template no PhpStorm. Desta forma, ao digitar ml e aprtar Tab, o PhpStorm completa o código pra mim.

Para configurar é bem simples, e basta usar o recurso de Live Templates.

Configurando o Live Template nas preferências do PhpStorm

A maioria das IDEs trazem recursos similares.

 

Vendo o resultado

O resultado será sempre adicionado ao final do arquivo especificado. E para observar em tempo real  que está ocorrendo, uso o comando tail -f nomedoarquivo.log.

 

Não deu certo?

Quando o Magento não tem permissão para salvar arquivos na pasta var ele tentará salvar na pasta /tmp/magento, mas desta vez, na raíz do seu servidor. Confira suas permissões e corrija conforme necessário.

 

Gostou desta dica? Confira então o curso gratuito Ferramentas e Dicas Matadoras para o Desenvolvimento Magento e conheça outras dicas e ferramentas de desenvolvimento.

 

Veja também:

Imagem principal: Pixabay

Últimos posts por Ricardo Martins (exibir todos)
Comentários

Deixe seu comentário

[fbcomments url="https://www.magenteiro.com/blog/magento-1/desenvolvimento/magelog-como-criar-arquivo-log/"]