Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

feat(logging): Migrate to Go structured logging with slog

Aperta
#970 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
go
Ambito
backend, cli

Direzione di ricerca

Inizia facendo l'inventario degli usi di log.Printf e fmt.Printf in pkg/unikontainers/, pkg/containerd-shim/ e cmd/urunc/, quindi esamina il percorso di avvio della CLI per individuare dove è possibile inizializzare i flag. Il lavoro è completato quando queste aree utilizzano una configurazione slog centralizzata, i flag per il livello e il formato dei log funzionano, l'output JSON è valido e il comportamento rimane invariato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

invalid Stale

Description

urunc currently uses standard Go logging (log package or fmt.Printf) throughout the codebase. This produces unstructured, plain-text logs that are difficult to filter, query, or aggregate in production deployments.

Go 1.21 introduced log/slog, the standard structured logging package. Migrating to slog would enable leveled logging (Debug, Info, Warn, Error), structured key-value pairs, and JSON output.... all without external dependencies.

Proposed Work

  1. Introduce a centralized logger in pkg/ or internal/ using log/slog.
  2. Replace log.Printf / fmt.Printf logging calls with slog.Info, slog.Debug, slog.Error across:
    • pkg/unikontainers/ (VM lifecycle, network, initrd)
    • pkg/containerd-shim/ (shim operations)
    • cmd/urunc/ (CLI commands)
  3. Add a --log-format flag to urunc CLI supporting text (default) and json.
  4. Add a --log-level flag supporting debug, info, warn, error.

Why This Matters

  • Structured logs enable filtering and aggregation in production (e.g., "show all ERROR logs from network setup").
  • JSON output integrates with log aggregation systems (ELK, Loki, CloudWatch).
  • Aligns with modern Go practices (runc, containerd both use structured logging).
  • Zero external dependencies slog is in the standard library.

Acceptance Criteria

  • slog logger is initialized at program startup with configurable level/format.
  • All existing log calls migrated to structured equivalents.
  • urunc --log-level=debug --log-format=json produces valid JSON logs.
  • No functional behavior changes purely logging migration.

Non-Priorities

  • Adding new logging frameworks (zap, zerolog, etc.)slog only.
  • Changing error handling logic.
  • Adding new features beyond logging.

I can start with pkg/unikontainers/ and then move on from there...

Lingua principale
Go
Stelle
306
Fork
214
Merge medio
2g 23h
PR unite (30g)
26

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di urunc-dev/urunc

Tutte le issue di urunc-dev/urunc

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.