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/monologPara 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.
Também na biblioteca
Biblioteca WebSocket Swift: Starscream para iOS/macOS
ORM para JavaScript (Node.js): comparação entre Sequelize, TypeORM, Prisma
Trabalho com XML em C# (.NET): Guia Completo
Trabalho com imagens em Rust: redimensionar e cortar com a biblioteca image