Como Verificar Log do Sistema Magento

Arquivos de log’s são muito úteis durante o processo de desenvolvimento do sistema para encontrar problemas, conflitos, e identificar falhas de funcionamento.

O Magento oferece 3 (três) controles de log’s:

1. Log de monitoramento de navegação. Ver post: Limpar tabela de Log’s.

2. Log de falha no sistema. Ver post: Error log record number.

3. Log de eventos e exceções. Que veremos neste post.

Por que eu deveria

Enquanto você está montando sua loja, desenvolvendo módulos, customizando páginas, instalando extensões, é muito importante que você monitore os eventos e exceções que ocorrem no seu sistema.

É muito comum as pessoas começarem a personalizar a loja inteira, e “do nada” algo para de funcionar como deveria, seja um cadastro de endereços, um meio de pagamento, ou avaliação de produtos.

Você pode estar com problemas/conflitos no código que não chegam a gerar uma falha de continuidade no sistema, e por isso não possui o famoso Error log record number. O que não significa que não existam erros.

Como usar

Assim que você instala o Magento o controle de log’s de eventos e exceções vem desligado. Pois não é algo essencial para o funcionamento do sistema.

Mas fundamental para quem está desenvolvendo. Por isso acesse:

Sistema > Configuração > Avançado > Desenvolvedor [Configurações de Log]

E altere a opção Habilitado para “Sim” e clique em salvar.

Veja ainda que você pode personalizar o nome dos arquivos. E abaixo do nome ele indica o diretório onde estes arquivos serão gerenciados.

Como ler

Agora que seu sistema está gerando arquivos de log, você pode acompanhar os arquivos para identificar possíveis problemas, basta acessar o diretório indicado:

sua instalação > var > log

Ambos os arquivos estarão listados system.log e exception.log.

Onde você pode usar o system.log para gerar um debug do código, com mensagens do tipo “metodo chamado e retornando valor X“. Ou ainda gerar um alerta do tipo “valor inválido para cálculo na assinatura do método“.

E o arquivo exception.log é onde os erros são monitorados. São erros similares aos gerados pelo Error log record number, a diferença é que eles não chegam a impedir o sistema de continuar funcionando. Exemplo:

2013-07-24T07:23:14+00:00 ERR (3): 
exception 'Exception' with message 'Strict Notice: Non-static method Mage_Core_Model_Locale::date() should not be called statically, assuming $this from incompatible context in /Users/mariosam/app/design/frontend/base/default/template/catalog/product/widget/new/content/new_list.phtml on line 74' in /Users/mariosam/app/code/core/Mage/Core/functions.php:245
Stack trace:
#0 /Users/mariosam/app/design/frontend/base/default/template/catalog/product/widget/new/content/new_list.phtml(74): mageCoreErrorHandler(2048, 'Non-static meth...', '/Users/mariosam...', 74, Array)
#1 /Users/mariosam/app/code/core/Mage/Core/Block/Template.php(216): include('/Users/mariosam...')

Ele continua até o número #20, #30, #40 {main}. Mas o que interessa mesmo são as primeiras linhas.

E caso você não saiba interpretar a mensagem, copie a informação e leve para o fórum Bragento para obter ajuda.

Usando o log

Se você é um desenvolvedor, pode utilizar os arquivos de log para debugar seu código. Basta utilizar o código abaixo:

Log de exceção:
...
} catch(Exception $e) {
    Mage::logException($e);
}

A assinatura do método é esta:

public static function logException(Exception $e)
Log de eventos:
Mage::log('sua msg aqui...');

A assinatura do método é esta:

public static function log($message, $level = null, $file = '', $forceLog = false)

Veja que é possível informar além da mensagem, um grau (level) de importância, o nome de um arquivo (file) para gravar o log, e se você deve forçar a gravação do arquivo mesmo com sistema de log’s desligado.

Quer outras dicas de como usar o arquivo de log para debug? Veja o wiki no site oficial (em inglês): Magento Debugging Tips.

Sucesso!

O Autor

Mario SAM

Desenvolvedor Magento com certificação M1 Developer e M1 FrontEnd Developer. Graduado em Web Design e Programação, pós-graduado em Gestão de Projetos e TI. Não sou matemático mas estou aqui para somar.