0Pricing
Go Academy · Lezione

Perché usare log strutturati

Logging leggibile dalle macchine

Perché usare log strutturati è una lezione Go Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Go Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Go Academy include 4 lezioni in totale.

Log leggibili dalle macchine

I log tradizionali sono stringhe in formato libero: "user 42 logged in from 1.2.3.4". Sono facili da leggere per le persone, ma difficili da interrogare per le macchine. Il logging strutturato emette coppie chiave-valore, così gli aggregatori di log possono filtrare e aggregare i dati in modo affidabile.

Il problema dei log testuali

L'analisi del testo libero è fragile:

  • I formati cambiano nel tempo
  • Le espressioni regolari si interrompono nei casi limite
  • Non è possibile chiedere facilmente "tutti gli eventi in cui userID=42"

I log strutturati trasformano ogni campo in un attributo di prima classe, interrogabile.

slog fa parte della libreria standard

A partire da Go 1.21, il logging strutturato è disponibile nel package della libreria standard log/slog. Non è necessaria alcuna dipendenza esterna.

import "log/slog"

Il primo log strutturato

La chiamata più semplice registra un messaggio insieme ad attributi chiave-valore:

package main

import "log/slog"

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

Lettura dell'output

L'handler predefinito stampa qualcosa di simile:

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

Ogni attributo è una coppia key=value distinta, pronta per essere analizzata da una macchina.

Livelli integrati

slog include quattro livelli: Debug, Info, Warn, Error. Ognuno accetta un messaggio e attributi chiave-valore alternati.

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

Coppie chiave-valore

Gli attributi vengono passati come argomenti alternati: chiave, valore, chiave, valore. Un argomento dispari isolato viene registrato con il marcatore speciale !BADKEY, quindi mantenga sempre le coppie complete.

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

JSON in produzione

In produzione, in genere si emette JSON, così i sistemi di raccolta dei log (Loki, ELK, CloudWatch) possono indicizzare automaticamente i campi. slog offre un handler JSON proprio per questo scopo, che verrà trattato nella prossima lezione.

Confronto con il vecchio package log

Il package classico log stampa solo stringhe. slog mantiene un approccio familiare, ma aggiunge struttura, livelli e handler intercambiabili, senza richiedere di modificare subito l'intera codebase.

Quando la struttura fa la differenza

Il logging strutturato è particolarmente utile quando:

  • Si centralizzano i log di molti servizi
  • Si creano dashboard e avvisi basati sui campi
  • È necessario correlare le richieste tramite un ID

Esempio eseguibile: output strutturato

Esegua questo esempio per vedere gli attributi strutturati nell'output predefinito.

package main

import "log/slog"

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

Verifica rapida

Metta alla prova la propria comprensione del logging strutturato.

Riepilogo

Ha imparato perché i log strutturati sono importanti:

  • Gli attributi chiave-valore possono essere interrogati dalle macchine
  • log/slog fa parte della libreria standard (Go 1.21+)
  • Livelli integrati: Debug, Info, Warn, Error
  • Passi gli attributi come coppie alternate di chiave e valore

Prossimo argomento: scegliere tra handler testuali e JSON.

Domande Frequenti

La lezione «Perché usare log strutturati» è gratuita?

Sì — il testo completo di «Perché usare log strutturati» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Go Academy, passa a CoddyKit PRO. Il corso Go Academy include 4 lezioni in totale.

Cosa imparerò in «Perché usare log strutturati»?

Logging leggibile dalle macchine Eserciti Go Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Go Academy?

Non è richiesta alcuna esperienza precedente. Go Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Perché usare log strutturati»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Go Academy?

Sì. Ogni lezione Go Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Perché usare log strutturati
  2. Handler di slog
  3. Livelli e attributi dei log
  4. Handler personalizzati
← Torna a Go Academy