In questa lezione sul pacchetto Logrus in Golang, studieremo vari esempi su come è possibile eseguire il logging in modo efficace in Go e vedremo quanto siano importanti i log nel linguaggio di programmazione Go. Inizieremo ora.
A partire da Go
Ecco la struttura di directory che ho creato per il mio programma Hello World:
Ecco il programma che abbiamo creato:
pacchetto principaleimportare "fmt"
funzione principale()
fmt.Printf("Ciao, mondo.\n")
Possiamo eseguire il programma sopra con il seguente comando:
vai a correre ciao.partireUna volta eseguito questo comando, ecco l'output che vedrai:
Ora sembra a posto. Passiamo alla nostra agenda principale.
Pacchetto Logrus nel Golang
Per iniziare a utilizzare il pacchetto Logrus nel programma Go, dobbiamo ottenere è. Esegui il seguente comando:
vai a prendere -t github.com/Sirupsen/logrusQuando iniziamo a utilizzare questo pacchetto in IntelliJ, vediamo questo errore che possiamo risolvere con un clic:
Una volta ricevuto il pacchetto, possiamo iniziare a usarlo. Iniziamo con un semplice programma.
Registrazione di base con Logrus
Inizieremo con un esempio di registrazione del livello INFO molto semplice. La registrazione può essere eseguita con messaggi stringa e metadati sotto forma di coppie chiave-valore che appaiono uguali.
pacchetto principaleimportazione (
log "github.com/Sirupsen/logrus"
)
funzione principale()
log.WithFields(log.Campi
"sito web": "linuxhint.com",
"fantastico": 100,
"aiuto": 200,
).Info("Golang pro")
Quando eseguiamo questo programma, possiamo vedere il seguente output:
Ora è sia utile che colorato!
Vari livelli di registrazione
Ora proveremo un altro esempio che mostrerà l'uso di vari livelli di registrazione disponibili in Logrus e in generale. Sono:
- Informazioni
- avvertimento
- Fatale
- Debug
- Panico
Proviamo a costruire un programma e vediamo come differiscono questi livelli di log quando appaiono nel nostro programma:
pacchetto principaleimportazione (
log "github.com/Sirupsen/logrus"
)
funzione principale()
log.WithFields(log.Campi
"sito web": "linuxhint.com",
"fantastico": 100,
).Info("Messaggio INFO Golang pro")
log.WithFields(log.Campi
"sito web": "linuxhint.com",
"fantastico": 100,
).Avvisa ("Messaggio WARN di Golang pro")
log.WithFields(log.Campi
"sito web": "linuxhint.com",
"fantastico": 100,
).Fatal("Messaggio Golang pro FATAL")
log.WithFields(log.Campi
"sito web": "linuxhint.com",
"fantastico": 100,
).Panico("Messaggio Golang pro PANIC")
log.WithFields(log.Campi
"sito web": "linuxhint.com",
"fantastico": 100,
).Debug("Messaggio di DEBUG di Golang pro")
Quando eseguiamo questo programma, vedremo il seguente output:
Ho notato qualcosa? Le istruzioni di log dopo l'istruzione Fatal non appaiono nemmeno nel nostro output. Questo perché non appena viene ricevuto un errore fatale, l'esecuzione del programma si interrompe in Golang.
Modifichiamo l'ordine di queste istruzioni e controlliamo se vengono osservate anche alcune modifiche nell'output:
Questa volta, anche il livello di Panic Log ha reagito allo stesso modo, ma l'output è stato molto diverso e dettagliato.
Con il livello di log Panic, ti assicuri che nell'output nella console vengano stampate anche informazioni sufficienti sulla macchina host in modo che il lavoro sia debugabile.
Un modo più semplice per creare log
Nelle chiamate precedenti, i registri erano piuttosto dettagliati e anche con metadati. C'è un modo più semplice per registrare i tuoi messaggi. Proviamo questo ora:
pacchetto principaleimportazione (
log "github.com/Sirupsen/logrus"
)
funzione principale()
log.Debug("Debug dei dati qui.")
log.Info("Messaggi per informazioni comuni")
log.Avvisa("Dovresti guardare questo avviso!")
log.Error("Si è verificato un errore ma il programma continuerà.")
// Chiama il sistema operativo.Esci(1) dopo la registrazione
log.Fatale ("Me ne vado.")
// Chiama panic() dopo la registrazione
log.Panico("Non verrò stampato :(")
Ecco l'output del programma:
Il comportamento per la registrazione era lo stesso, ma questa volta erano facili da realizzare in una sola riga.
Conclusione
In questo post, abbiamo studiato esempi semplici ma utili su come possiamo registrare messaggi importanti con diversa gravità e verbosità nelle nostre applicazioni utilizzando il pacchetto Logrus con Golang.