Laravel Log

Laravel
Tempo de leitura: 4 minutos

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:

DriverDescriçãoUso Comum
singleGrava logs em um único arquivo (padrão).Desenvolvimento e ambientes de baixo tráfego.
dailyCria um novo arquivo de log por dia (ótimo para manutenção).Ambientes de produção para fácil rotação.
slackEnvia logs para um canal do Slack.Alertas críticos que exigem ação imediata.
syslogEnvia logs para o sistema de log do servidor.Integração com infraestrutura de logging centralizada.
stackCombina 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ívelObjetivoExemplo de Uso
debugInformações detalhadas para debug (uso interno).Valores de variáveis, execução de queries SQL.
infoEventos normais e interessantes (fluxo de aplicação).“Usuário logado com sucesso.”
noticeEventos significativos, mas não críticos.Alguém limpou o cache.
warningIndica problemas potenciais que podem não exigir ação imediata.Uso de recurso deprecated.
errorErros que não causam a interrupção completa da aplicação.Erro ao enviar um e-mail.
criticalComponente ou aplicativo indisponível (requer ação).Falha na conexão com um serviço de pagamento.
alertExige ação imediata; erro corrigido no nível do servidor.Servidor primário do banco de dados caiu.
emergencyO 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ível debug, o volume de logs pode degradar o desempenho. Mantenha os logs em info ou warning em ambientes de produção.
  • Use os Níveis Corretamente: Use error ou critical apenas para eventos que realmente representam uma falha. Use info para 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 syslog ou 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:

HTML
HTML
CSS
CSS
Javascript
JavaScript
SQL
SQL
Capa Curso PHP
PHP

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:

Hospedagem Hostinger
Ofertas Amazon
Amazon Prime
Author: Thiago Rossi
Com mais de 20 anos de jornada na tecnologia, minha trajetória evoluiu do ensino técnico à arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de soluções de Inteligência Artificial nativa e análise de dados públicos, utilizando o ecossistema PHP para transformar dados brutos em transparência e eficiência. Como autor e desenvolvedor, acredito na democratização do conhecimento. Essa visão resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura até os bastidores da indústria de Jogos e IA. No universo de Game Design, sou autor do livro "GDD – O Guia Definitivo" e documento ativamente meus processos através de DevLogs, unindo rigor técnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso é conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.