Logging em PHP: melhores práticas para iniciantes

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: Por que o logging é necessário em PHP?



Logging não é apenas registrar erros em um arquivo. É sua principal ferramenta para monitoramento, depuração e análise do funcionamento de uma aplicação web. Sem um logging de qualidade, você ficará adivinhando por que o site caiu ou por que o usuário não consegue finalizar um pedido. Para desenvolvedores iniciantes em PHP, configurar o logging correto é o primeiro passo para o desenvolvimento profissional.



Imagine que sua aplicação é uma caixa-preta. Os logs são a única maneira de olhar para dentro, entender o que está acontecendo a cada momento. Neste artigo, abordaremos as melhores práticas que ajudarão você a evitar erros típicos de iniciantes e construir um sistema de monitoramento confiável.



1. Fundamentos: funções nativas do PHP para logging



O PHP oferece várias funções nativas para trabalhar com logs. A mais simples e popular é error_log(). Ela permite enviar uma mensagem para o log do sistema do servidor ou para um arquivo especificado.



Exemplo básico de uso do error_log()

// Registro mais simples de erro no log do sistemaerror_log("Esta é uma mensagem de erro", 0);

// Registro em um arquivo específicoerror_log("Erro de conexão com o banco de dados", 3, "/var/log/php_errors.log");

// Registro com indicação do tipo de mensagemerror_log("Aviso: requisição lenta", 4);


No entanto, usar error_log() diretamente em produção não é uma boa ideia. Primeiro, você mistura diferentes tipos de mensagens. Segundo, é difícil gerenciar o formato e a rotação dos logs. Para projetos sérios, é melhor usar bibliotecas especializadas.



Configuração do php.ini para logging aprimorado

Antes de escrever código, certifique-se de que seu php.ini está configurado corretamente:

; Ativa o logging de erroslog_errors = On; Caminho para o arquivo de logerror_log = /var/log/php_errors.log; Tamanho máximo do log (em bytes)log_errors_max_len = 1024; Desativa a exibição de erros na tela (para produção)display_errors = Off; Ativa o logging de todos os níveis de erroerror_reporting = E_ALL


2. Níveis de logging: de DEBUG a CRITICAL



Um dos principais erros de iniciantes é registrar todas as mensagens em uma única pilha. O logging profissional usa níveis de gravidade. Isso ajuda a filtrar rapidamente os logs e não perder erros críticos entre mensagens informativas.



Níveis padrão PSR-3

A comunidade PHP adotou o padrão PSR-3, que define 8 níveis de logging:

  • DEBUG — informações detalhadas de depuração (usado apenas em desenvolvimento)
  • INFO — mensagens informativas (usuário registrado, pedido criado)
  • NOTICE — eventos normais, mas significativos (uso de funções obsoletas)
  • WARNING — avisos (ex.: requisição lenta, espaço em disco baixo)
  • ERROR — erros que exigem atenção (falha ao conectar ao banco de dados)
  • CRITICAL — erros críticos (componente principal do sistema indisponível)
  • ALERT — requer intervenção imediata (invasão, falha do sistema)
  • EMERGENCY — sistema inoperante


Exemplo de implementação de níveis com Monolog

A melhor biblioteca para logging em PHP é o Monolog. Ela é totalmente compatível com PSR-3 e fácil de configurar:

use Monolog\\Logger;use Monolog\\Handler\\StreamHandler;use Monolog\\Handler\\RotatingFileHandler;use Monolog\\Level;

// Cria um logger com nome de canal$log = new Logger('app');

// Adiciona um handler para todos os níveis$log->pushHandler(new StreamHandler('/var/log/app.log', Level::Debug));

// Arquivo separado para erros críticos$log->pushHandler( new RotatingFileHandler('/var/log/critical.log', 30, Level::Critical));

// E

Blogs

Book Recommendations