Onde os logs do Rails ficam
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.
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.