Go Academy · Lektion

Varför strukturerade loggar

Maskinläsbar loggning

Lektion 1 av 413 steg

Varför strukturerade loggar är en gratis lektion i Go Academy på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Go Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Go Academy innehåller totalt 4 lektioner.

Maskinläsbara loggar

Traditionella loggar är fritt formulerade strängar: "user 42 logged in from 1.2.3.4". De är enkla för människor men svåra för maskiner att söka i. Strukturerad loggning skriver ut nyckel-värde-par så att loggaggregatorer kan filtrera och aggregera tillförlitligt.

Problemet med strängloggar

Det är bräckligt att tolka fritext:

  • Format förändras över tid
  • Reguljära uttryck går sönder i kantfall
  • Du kan inte enkelt fråga efter "alla händelser där userID=42"

Strukturerade loggar gör varje fält till ett förstaklassat, sökbart attribut.

slog finns i standardbiblioteket

Sedan Go 1.21 finns strukturerad loggning i standardbibliotekspaketet log/slog. Ingen extern beroendepaket behövs.

import "log/slog"

Din första strukturerade logg

Det enklaste anropet loggar ett meddelande tillsammans med nyckel-värde-attribut:

package main

import "log/slog"

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

Läsa resultatet

Standardhanteraren skriver ut något i stil med:

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

Varje attribut är ett separat key=value-par som är redo att tolkas av maskiner.

Inbyggda nivåer

slog innehåller fyra nivåer: Debug, Info, Warn, Error. Varje nivå tar ett meddelande och växelvis angivna nyckel-värde-attribut.

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

Nyckel-värde-par

Attribut skickas som växelvisa argument: nyckel, värde, nyckel, värde. Ett ensamt argument i slutet loggas med den särskilda markeringen !BADKEY, så se till att de kommer parvis.

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

JSON i produktion

I produktion skriver du vanligtvis ut JSON så att loggagenter (Loki, ELK, CloudWatch) automatiskt kan indexera fälten. slog har en JSON-hanterare för just detta, vilket behandlas i nästa lektion.

Jämförelse med det gamla log-paketet

Det klassiska log-paketet skriver bara ut strängar. slog känns bekant men ger dessutom struktur, nivåer och utbytbara hanterare utan att du behöver ändra hela kodbasen på en gång.

När struktur lönar sig

Strukturerad loggning lönar sig mest när:

  • Du samlar loggar från många tjänster på ett ställe
  • Du bygger instrumentpaneler och aviseringar utifrån fält
  • Du behöver koppla ihop förfrågningar med hjälp av ett ID

Körbart: Strukturerade utdata

Kör detta för att se strukturerade attribut i standardutdata.

package main

import "log/slog"

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

Snabbtest

Testa dina kunskaper om strukturerad loggning.

Sammanfattning

Du har lärt dig varför strukturerade loggar är viktiga:

  • Nyckel-värde-attribut kan sökas i av maskiner
  • log/slog ingår i standardbiblioteket (Go 1.21+)
  • Inbyggda nivåer: Debug, Info, Warn, Error
  • Skicka attribut som växelvisa nyckel-, värde-par

Nästa steg: välj mellan text- och JSON-hanterare.

Gratis att börja

Lär dig Go med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
51
Lektioner
203

Vanliga frågor

Är lektionen ”Varför strukturerade loggar” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Go Academy, inklusive ”Varför strukturerade loggar”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Go Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Varför strukturerade loggar”?

Maskinläsbar loggning Ni övar på Go Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Go Academy?

Du behöver inga förkunskaper. Utbildningen i Go Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Varför strukturerade loggar”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Go Academy-lektionen?

Ja. Varje Go Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Varför strukturerade loggar
  2. slog-hanterare
  3. Loggnivåer och attribut
  4. Egna hanterare
← Tillbaka till Go Academy