Registro de Logs para PHP (Monolog)

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

O que é logging em PHP e para que serve?

Logging é o processo de registrar informações sobre a operação de uma aplicação: erros, avisos, mensagens de depuração e ações do usuário. Em PHP, ao contrário do Python, não existe um logger compatível com PSR "integrado" (embora exista a função error_log()). Portanto, a melhor solução é usar a biblioteca Monolog — o padrão de facto para logging em projetos PHP.

Para que serve o logging?

  • Depuração de produção (stack trace de erros)
  • Monitoramento de desempenho
  • Auditoria de segurança (logins, alterações de dados)
  • Análise do comportamento do usuário

Instalação do Monolog

A instalação é feita via Composer (análogo ao pip para PHP):

composer require monolog/monolog

Para funcionar, é necessário PHP 8.0+ e Composer 2.x.

Principais funções e recursos

O Monolog suporta:

  • Canais (Channels) — loggers isolados para diferentes partes da aplicação (ex.: 'security', 'database')
  • Níveis de logging (DEBUG, INFO, WARNING, ERROR, CRITICAL e outros)
  • Handlers — para onde escrever: arquivos, bancos de dados, Slack, Telegram, e-mail
  • Processors — enriquecimento de mensagens com contexto (IP, hora, sessão)

Exemplo de código

<?phprequire 'vendor/autoload.php';

use Monolog\\Logger;use Monolog\\Handler\\StreamHandler;use Monolog\\Handler\\TelegramBotHandler;use Monolog\\Processor\\WebProcessor;

// Criando o canal 'app'$log = new Logger('app');

// Handler para escrever em arquivo$log->pushHandler(new StreamHandler(__DIR__.'/logs/app.log', Logger::WARNING));

// Handler para Telegram (opcional)$telegram = new TelegramBotHandler('YOUR_BOT_TOKEN', 'CHAT_ID', Logger::CRITICAL);$log->pushHandler($telegram);

// Processor para adicionar IP e User-Agent$log->pushProcessor(new WebProcessor());

// Logando$log->info('Usuário entrou no sistema', ['user_id' => 123]);$log->error('Erro no banco de dados', ['sql' => 'SELECT * FROM users']);

Quando usar

O Monolog é obrigatório nos seguintes casos:

  • Qualquer projeto comercial ou open-source em PHP (Symfony, Laravel usam Monolog por padrão)
  • Microsserviços e APIs — para rastreamento de requisições
  • Scripts Cron e workers — para monitorar a execução de tarefas
  • Ao integrar com serviços externos (logs no Graylog, Sentry, Papertrail)

A biblioteca é testada em milhares de projetos e suporta praticamente qualquer transporte para logs. Se você programa em PHP — comece com o Monolog.

Recommendations