Go Academy · leksjon

Hvorfor strukturerte logger

Maskinlesbar logging

Leksjon 1 av 413 trinn

Hvorfor strukturerte logger er en gratis leksjon i Go Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Go Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Go Academy inneholder totalt 4 leksjoner.

Logger maskiner kan lese

Tradisjonelle logger er frie tekststrenger: "user 42 logged in from 1.2.3.4". De er enkle for mennesker, men vanskelige for maskiner å spørre mot. Strukturert logging sender ut nøkkel-verdi-par, slik at loggaggregatorer kan filtrere og aggregere på en pålitelig måte.

Problemet med strenglogger

Å analysere fri tekst er skjørt:

  • Formater endrer seg over tid
  • Regulære uttrykk bryter sammen i kanttilfeller
  • Du kan ikke enkelt spørre etter «alle hendelser der userID=42»

Strukturerte logger gjør hvert felt til et førsteklasses attributt som kan spørres mot.

slog er en del av standardbiblioteket

Siden Go 1.21 ligger strukturert logging i standardbibliotekspakken log/slog. Det kreves ingen ekstern avhengighet.

import "log/slog"

Din første strukturerte logg

Det enkleste kallet logger en melding sammen med nøkkel-verdi-attributter:

package main

import "log/slog"

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

Lese resultatet

Standardbehandleren skriver ut noe som dette:

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

Hvert attributt er et separat key=value-par som er klart for maskinanalyse.

Innebygde nivåer

slog leveres med fire nivåer: Debug, Info, Warn, Error. Hvert nivå tar en melding og vekslende nøkkel-verdi-attributter.

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

Nøkkel-verdi-par

Attributter sendes som vekslende argumenter: nøkkel, verdi, nøkkel, verdi. Et overflødig argument på slutten logges med den spesielle markøren !BADKEY, så pass på at de kommer parvis.

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

JSON i produksjon

I produksjon sender du vanligvis ut JSON, slik at loggtransportører (Loki, ELK, CloudWatch) automatisk kan indeksere felter. slog har en JSON-behandler for akkurat dette, og den gjennomgås i neste leksjon.

Sammenligning med den gamle log-pakken

Den klassiske log-pakken skriver bare ut strenger. slog har en velkjent følelse, men legger til struktur, nivåer og utbyttbare behandlere uten at du må endre hele kodebasen på én gang.

Når struktur lønner seg

Strukturert logging gir størst gevinst når:

  • Du samler logger fra mange tjenester på ett sted
  • Du bygger dashbord og varsler basert på felter
  • Du må knytte forespørsler sammen ved hjelp av en ID

Kjørbart: Strukturert resultat

Kjør dette for å se strukturerte attributter i standardresultatet.

package main

import "log/slog"

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

Hurtigsjekk

Test forståelsen din av strukturert logging.

Oppsummering

Du har lært hvorfor strukturerte logger er viktige:

  • Nøkkel-verdi-attributter kan spørres mot av maskiner
  • log/slog er en del av standardbiblioteket (Go 1.21+)
  • Innebygde nivåer: Debug, Info, Warn, Error
  • Send attributter som vekslende nøkkel-verdi-par

Neste: velge tekst- eller JSON-behandlere.

Gratis å komme i gang

Lær deg Go med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
51
Leksjoner
203

Ofte stilte spørsmål

Er leksjonen «Hvorfor strukturerte logger» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Go Academy, inkludert «Hvorfor strukturerte logger», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Go Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Hvorfor strukturerte logger»?

Maskinlesbar logging Du øver på Go Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Go Academy?

Ingen tidligere erfaring er nødvendig. Go Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «Hvorfor strukturerte logger»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Go Academy-leksjonen?

Ja. Alle Go Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Hvorfor strukturerte logger
  2. slog-håndterere
  3. Loggnivåer og attributter
  4. Egendefinerte håndterere
← Tilbake til Go Academy