Monolog 3: logging estruturado para PHP em produção
DevOps & Deploy

Monolog 3: logging estruturado para PHP em produção

7 min de leitura

Logs de texto são difíceis de pesquisar. Com Monolog e JSON formatter, cada entrada vira um objeto consultável por ferramentas como Loki ou Papertrail.

Logs de texto são difíceis de usar

Logs no formato [2026-04-29 12:00:00] ERROR: mensagem aqui são legíveis para humanos mas difíceis de filtrar, agregar e alertar. JSON structured logging resolve isso: cada entrada é um objeto com campos consistentes.

Monolog 3 e o JsonFormatter

Monolog 3 é a versão atual e segue PSR-3. Com JsonFormatter, cada linha de log vira um JSON válido:

$handler = new StreamHandler('php://stderr');
$handler->setFormatter(new JsonFormatter());

Contexto rico

O segundo parâmetro de cada método de log aceita um array de contexto que é serializado junto com a mensagem. Isso permite incluir user_id, request_id, IP e qualquer dado relevante sem concatenar strings:

$logger->warning('Login failed', ['email' => $email, 'ip' => $ip]);

Telegram para erros críticos

Um handler personalizado que faz POST para a API do Telegram envia alertas imediatos para o desenvolvedor quando um erro error ou superior ocorre em produção. É uma alternativa leve a ferramentas como Sentry para projetos menores.

Log é observabilidade básica. Sem logs estruturados em produção, você está voando às cegas.