Registro de Logs para PHP: melhores soluções e bibliotecas para o site

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

Logging para PHP: melhores soluções e ferramentas



Logging é uma das tarefas principais no desenvolvimento de qualquer aplicação web em PHP. Sem um logging de qualidade, é impossível depurar o código de forma eficaz, rastrear erros em ambiente de produção e analisar o comportamento dos usuários. Neste artigo, veremos as melhores bibliotecas e ferramentas para logging em PHP, suas características e exemplos de uso.



Por que é importante fazer logging corretamente?

Uma simples chamada error_log() ou gravação em arquivo via file_put_contents() deixa de ser suficiente quando o projeto cresce. As soluções modernas oferecem:

  • Suporte ao PSR-3 (padrão de interface de logging);
  • Handlers flexíveis (arquivos, BD, syslog, email, Slack);
  • Formatação de mensagens (JSON, plain text, HTML);
  • Níveis de logging (debug, info, notice, warning, error, critical, alert, emergency);
  • Possibilidade de filtragem e rotação de logs.


1. Monolog — padrão de facto

Monolog é a biblioteca de logging mais popular em PHP (mais de 300 milhões de downloads no Packagist). Ela é totalmente compatível com PSR-3 e suporta dezenas de handlers e formatadores.

Instalação

composer require monolog/monolog

Exemplo de uso

<?phprequire 'vendor/autoload.php';

use Monolog\\Logger;use Monolog\\Handler\\StreamHandler;use Monolog\\Handler\\FirePHPHandler;

// Criando o logger$log = new Logger('my_app');$log->pushHandler(new StreamHandler(__DIR__.'/app.log', Logger::WARNING));$log->pushHandler(new FirePHPHandler());

// Registrando mensagens$log->warning('Atenção: limite de requisições excedido');$log->error('Erro de conexão com o BD', ['db' => 'mysql', 'time' => 1.5]);?>

Principais recursos

  • Handlers: StreamHandler, RotatingFileHandler, SyslogHandler, SwiftMailerHandler, SlackHandler e outros.
  • Formatadores: LineFormatter, JsonFormatter, HtmlFormatter, LogstashFormatter.
  • Processadores: adição de contexto (IP, URI, sessão) a cada mensagem.
  • Suporte a grupos de loggers e canais.

Monolog é ideal para grandes projetos, frameworks (Symfony, Laravel o usam por padrão) e arquitetura de microsserviços.



2. KLogger — alternativa leve

KLogger é uma biblioteca simples, mas eficaz, para quem não precisa de centenas de handlers. Ela implementa PSR-3 e funciona "pronta para uso".

Instalação

composer require katzgrau/klogger

Exemplo de uso

<?phprequire 'vendor/autoload.php';

use Katzgrau\\KLogger\\Logger;

$log = new Logger(__DIR__.'/logs');$log->info('Usuário registrado', ['user_id' => 42]);$log->debug('Depuração: requisição à API', ['url' => '/api/v1/data']);?>

Características

  • Rotação automática de logs por data;
  • Número mínimo de dependências;
  • Suporte a níveis de logging;
  • API simples (apenas alguns métodos).

KLogger é adequado para projetos pequenos, scripts e aplicações onde a simplicidade é importante.



3. Analog — flexível e minimalista

Analog é uma biblioteca que permite alterar facilmente o método de logging sem modificar o código. Ela usa o conceito de "máquina" (machine), que determina onde e como escrever os logs.

Instalação

composer require analog/analog

Exemplo de uso

<?phprequire 'vendor/autoload.php';

use Analog\\Analog;use Analog\\Handler\\File;

// Configurando a gravação em arquivoAnalog::handler(File::init(__DIR__.'/app.log'));

// RegistrandoAnalog::warning('Requires update');

Recommendations