Laravel Log: O sistema de Logging é uma fundação para qualquer aplicação robusta. No Laravel 12, o logging é gerenciado pela poderosa biblioteca Monolog, que é integrada de forma transparente, permitindo registrar eventos, erros e informações de debug durante a execução. O Laravel Log é essencial para a depuração, monitoramento de desempenho e auditoria de segurança.
Neste artigo, exploraremos como configurar o Laravel Log, utilizar os diferentes níveis de log e gerenciar canais de destino.
1. ⚙️ Configuração e Canais de Log
O sistema de logging é configurado no arquivo config/logging.php. Este arquivo define os Canais de Log, que são os destinos para onde as mensagens são enviadas.
A. Drivers de Log (Canais)
Cada canal utiliza um driver que define o método de armazenamento/envio:
| Driver | Descrição | Uso Comum |
single | Grava logs em um único arquivo (padrão). | Desenvolvimento e ambientes de baixo tráfego. |
daily | Cria um novo arquivo de log por dia (ótimo para manutenção). | Ambientes de produção para fácil rotação. |
slack | Envia logs para um canal do Slack. | Alertas críticos que exigem ação imediata. |
syslog | Envia logs para o sistema de log do servidor. | Integração com infraestrutura de logging centralizada. |
stack | Combina múltiplos canais (ex: grava no arquivo E envia para o Slack). | Padrão do ambiente de produção. |
B. Nível Mínimo
Para cada canal, você define o nível mínimo de log que será gravado. No exemplo abaixo, o canal single irá registrar qualquer evento com nível debug ou superior.
PHP
// config/logging.php
'channels' => [
'single' => [
'driver' => 'single',
'path' => storage_path('logs/laravel.log'),
'level' => 'debug', // Tudo a partir de DEBUG será registrado
],
// ...
],
2. 🚦 Níveis de Log (RFC 5424)
O Monolog e o Laravel seguem os 8 níveis de log definidos pelo RFC 5424, listados em ordem de severidade crescente:
| Nível | Objetivo | Exemplo de Uso |
debug | Informações detalhadas para debug (uso interno). | Valores de variáveis, execução de queries SQL. |
info | Eventos normais e interessantes (fluxo de aplicação). | “Usuário logado com sucesso.” |
notice | Eventos significativos, mas não críticos. | Alguém limpou o cache. |
warning | Indica problemas potenciais que podem não exigir ação imediata. | Uso de recurso deprecated. |
error | Erros que não causam a interrupção completa da aplicação. | Erro ao enviar um e-mail. |
critical | Componente ou aplicativo indisponível (requer ação). | Falha na conexão com um serviço de pagamento. |
alert | Exige ação imediata; erro corrigido no nível do servidor. | Servidor primário do banco de dados caiu. |
emergency | O sistema está inutilizável (ex: crash total). | Erro crítico na inicialização do framework. |
3. ✍️ Registrando Eventos
Você pode registrar logs de qualquer lugar do seu código usando a Facade Log ou o helper logger().
A. Uso da Facade Log
Você chama o método que corresponde ao nível de severidade que deseja registrar.
PHP
use Illuminate\Support\Facades\Log;
// 1. Log de Informação
Log::info('Usuário logado com sucesso no sistema.');
// 2. Log de Erro
try {
// ... código que pode falhar ...
} catch (\Exception $e) {
Log::error('Erro ao processar o formulário', ['exception' => $e->getMessage()]);
}
B. Logs Contextuais e Dados Adicionais
É uma melhor prática adicionar um array de dados contextuais ao seu log. Isso facilita a depuração, fornecendo informações úteis no momento do evento.
PHP
$userId = auth()->id();
$postId = 42;
Log::info('Post criado com sucesso.', [
'user_id' => $userId,
'post_id' => $postId,
'ip_address' => request()->ip()
]);
C. Registrando em Canais Específicos
Se o seu projeto tiver canais de log dedicados (ex: para auditoria ou produção), você pode direcionar a mensagem:
PHP
// Direciona a mensagem para o canal 'production' (definido em logging.php)
Log::channel('production')->alert('Falha crítica na API de terceiros!');
4. 🚀 Melhores Práticas de Logging
- Evite Logs Excessivos em
debug(Produção): A níveldebug, o volume de logs pode degradar o desempenho. Mantenha os logs eminfoouwarningem ambientes de produção. - Use os Níveis Corretamente: Use
erroroucriticalapenas para eventos que realmente representam uma falha. Useinfopara rastrear o fluxo da aplicação. - Não Registre Dados Sensíveis: Evite logar senhas, tokens de API ou informações de cartão de crédito.
- Centralize o Logging: Para aplicações escaláveis, utilize um canal
syslogou envie logs para serviços de terceiros (como ELK Stack, Loggly, ou Datadog) para fácil busca e análise.
✅ Conclusão Laravel Log
Laravel Log: O sistema de Logging do Laravel, impulsionado pelo Monolog, é uma ferramenta indispensável para garantir a qualidade e a estabilidade da sua aplicação. Ao configurar canais adequados, utilizar os 8 níveis de severidade corretamente e incluir dados contextuais em suas mensagens, você transforma seus logs em uma poderosa ferramenta de auditoria e diagnóstico, permitindo a identificação e correção de problemas de forma rápida e precisa.
Mas antes de dominar o Laravel, se for o seu caso, toda jornada tem um início. Vamos entender quais são os conhecimentos básicos necessários para aproveitar ao máximo este poderoso framework. Para iniciar seus estudos no Laravel, você precisará dominar as seguintes tecnologias:
E se você gosta do nosso conteúdo, não deixe de contribuir adquirindo os serviços e produtos dos nossos apoiadores e empresas que somos associados:















