Hvorfor strukturerte logger
Maskinlesbar logging
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/sloger 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.
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
- Hvorfor strukturerte logger
- slog-håndterere
- Loggnivåer og attributter
- Egendefinerte håndterere