Onde os logs do Rails ficam

Prévia grátis 2 min de leitura

Algo quebrou, nenhum navegador aberto

Uma requisição falha em algum lugar, sem dev tools do navegador abertas e sem ninguém olhando. O Rails registrou o que aconteceu mesmo assim, num arquivo de texto simples. Deste projeto:

tail -n 3 log/development.log
Started GET "/" for ::1 at 2026-08-31 13:22:35 -0300
Processing by Public::PagesController#home as */*
Completed 200 OK in 12ms (Views: 6.9ms | ActiveRecord: 1.8ms (5 queries, 0 cached) | GC: 0.1ms)

Essas são linhas reais do log de desenvolvimento deste app.

Um arquivo, toda requisição, em ordem

log/development.log é onde o ambiente de desenvolvimento deste app escreve tudo: cada requisição, cada query SQL, cada template renderizado, cada exceção, anexados na ordem em que aconteceram. Nada precisa de um debugger conectado ou de um breakpoint definido antes. O registro já está no disco no momento em que algo dá errado.

Ambientes diferentes, arquivos diferentes

Cada ambiente registra separado. O de desenvolvimento escreve em log/development.log. O ambiente de produção deste app nem escreve arquivo de log. Ele registra na saída padrão (config.logger = ActiveSupport::TaggedLogging.logger(STDOUT), marcando cada linha com o id da requisição), e a plataforma de containers coleta esse fluxo. De um jeito ou de outro, um log de produção movimentado nunca afoga uma sessão de desenvolvimento tranquila.

O que este curso cobre

A aula 2 detalha cada parte de uma linha de log. A aula 3 acompanha uma requisição da primeira à última linha. As aulas 4 a 6 passam para a outra metade do curso. Elas ensinam a ler um stack trace do Ruby de cima para baixo, achar o frame que é código deste app e saber qual linha ler primeiro. A aula 7 junta as duas metades numa falha disparada de propósito.

Este é o último curso de uma sequência de três cursos de debug, depois de "Método científico de debug" e "Debug: domínio de binding.irb". Aqueles dois investigam um programa enquanto ele roda. Este lê o que já aconteceu, a partir de registros que o app escreveu.

Aula 1 de 7 · grátis

Continue com a aula 2

Anatomia de uma linha de log

Detalha as linhas Started, Processing by, Parameters e Completed, incluindo status, tempos e contagem de queries.

Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.

Digite para buscar...