0Pricing
Go Academy · Aula

Por que usar registros estruturados

Use logging legível por máquinas

Por que usar registros estruturados é uma aula grátis de Go Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Go Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Go Academy inclui 4 aulas no total.

Registros que as máquinas podem ler

Os registros tradicionais são strings de formato livre: "user 42 logged in from 1.2.3.4". Eles são fáceis para as pessoas, mas difíceis de consultar por máquinas. O registro estruturado emite pares de chave e valor para que os agregadores de registros possam filtrar e agregar dados com confiabilidade.

O problema dos registros em string

Analisar texto livre é frágil:

  • Os formatos mudam com o tempo
  • As expressões regulares falham em casos extremos
  • Você não consegue perguntar facilmente "todos os eventos em que userID=42"

Os registros estruturados tornam cada campo um atributo de primeira classe que pode ser consultado.

slog está na biblioteca padrão

Desde o Go 1.21, o registro estruturado está no pacote da biblioteca padrão log/slog. Não é necessária nenhuma dependência externa.

import "log/slog"

Seu primeiro registro estruturado

A chamada mais simples registra uma mensagem acompanhada de atributos de chave e valor:

package main

import "log/slog"

func main() {
    slog.Info("user logged in", "userID", 42, "ip", "1.2.3.4")
}

Lendo a saída

O manipulador padrão imprime algo como:

  • 2009/11/10 23:00:00 INFO user logged in userID=42 ip=1.2.3.4

Cada atributo é um par distinto de key=value, pronto para ser analisado por uma máquina.

Níveis integrados

O slog oferece quatro níveis: Debug, Info, Warn, Error. Cada um recebe uma mensagem e atributos alternados de chave e valor.

slog.Warn("disk almost full", "freePct", 5)
slog.Error("db connection failed", "attempt", 3)

Pares de chave e valor

Os atributos são passados como argumentos alternados: chave, valor, chave, valor. Um argumento ímpar isolado é registrado com o marcador especial !BADKEY, portanto mantenha os pares completos.

slog.Info("order placed", "orderID", 1001, "total", 49.99)

JSON para produção

Em produção, geralmente você emite JSON para que os coletores de registros (Loki, ELK, CloudWatch) possam indexar os campos automaticamente. O slog tem um manipulador JSON específico para isso, que será abordado na próxima lição.

Comparação com o pacote log antigo

O pacote clássico log apenas imprime strings. O slog mantém uma experiência familiar, mas acrescenta estrutura, níveis e manipuladores conectáveis sem exigir a alteração de toda a sua base de código de uma só vez.

Quando a estrutura compensa

O registro estruturado compensa principalmente quando:

  • Você centraliza registros de muitos serviços
  • Cria painéis e alertas com base nos campos
  • Precisa correlacionar requisições por um ID

Executável: saída estruturada

Execute isto para ver atributos estruturados na saída padrão.

package main

import "log/slog"

func main() {
    slog.Info("request handled",
        "method", "GET",
        "path", "/health",
        "status", 200,
        "ms", 12,
    )
}

Verificação rápida

Teste sua compreensão sobre registros estruturados.

Recapitulação

Você aprendeu por que os registros estruturados são importantes:

  • Os atributos de chave e valor podem ser consultados por máquinas
  • log/slog está na biblioteca padrão (Go 1.21+)
  • Níveis integrados: Debug, Info, Warn, Error
  • Passe os atributos como pares alternados de chave e valor

A seguir: escolha entre manipuladores de texto e JSON.

Perguntas Frequentes

A aula “Por que usar registros estruturados” é grátis?

Sim — o texto completo de “Por que usar registros estruturados” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Go Academy, atualize para CoddyKit PRO. O curso de Go Academy inclui 4 aulas no total.

O que vou aprender em “Por que usar registros estruturados”?

Use logging legível por máquinas Você pratica Go Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Go Academy?

Nenhuma experiência prévia é necessária. Go Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Por que usar registros estruturados”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Go Academy?

Sim. Cada aula de Go Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Por que usar registros estruturados
  2. Manipuladores de slog
  3. Níveis e atributos de registros
  4. Manipuladores personalizados
← Voltar para Go Academy