I denne lektion om Logrus-pakken i Golang vil vi studere forskellige eksempler på, hvor effektiv logning kan udføres i Go og se, hvor vigtige logfiler er på Go-programmeringssproget. Vi kommer i gang nu.
Startende med Go
Her er katalogstrukturen, som jeg lavede til mit Hello World-program:
Her er det program, vi oprettede:
pakke hovedimporter "fmt"
funk main ()
fmt.Printf ("Hej verden.\ n ")
Vi kan køre ovenstående program med følgende kommando:
gå løb hej.gåNår vi har kørt denne kommando, er det output, du vil se:
Nu ser det godt ud. Lad os gå til vores hoveddagsorden.
Logrus-pakke i Golang
For at begynde at bruge Logrus-pakken i Go-programmet skal vi få det. Kør følgende kommando:
gå og få -t github.com / Sirupsen / logrusNår vi begynder at bruge denne pakke i IntelliJ, ser vi denne fejl, som vi kan løse med et enkelt klik:
Når du har fået pakken, kan vi begynde at bruge den. Lad os starte med et simpelt program.
Grundlæggende logning med Logrus
Vi starter med et meget grundlæggende INFO niveau logging eksempel. Logning kan ske med strengbeskeder og metadata i form af nøgleværdipar, der ser ud som de samme.
pakke hovedimport (
log "github.com / Sirupsen / logrus "
)
funk main ()
log.WithFields (log.Felter
"website": "linuxhint.com ",
"fantastisk": 100,
"hjælp": 200,
).Info ("Golang pro")
Når vi kører dette program, kan vi se følgende output:
Nu er det både nyttigt og farverigt!
Forskellige logningsniveauer
Nu vil vi prøve et andet eksempel, der viser brugen af forskellige logningsniveauer, der er tilgængelige i Logrus og generelt. De er:
- Info
- Advarsel
- Fatal
- Fejlfinde
- Panik
Lad os prøve at opbygge et program og se, hvordan disse logniveauer adskiller sig, når de vises i vores program:
pakke hovedimport (
log "github.com / Sirupsen / logrus "
)
funk main ()
log.WithFields (log.Felter
"website": "linuxhint.com ",
"fantastisk": 100,
).Info ("Golang pro INFO-besked")
log.WithFields (log.Felter
"website": "linuxhint.com ",
"fantastisk": 100,
).Advar ("Golang pro WARN-besked")
log.WithFields (log.Felter
"website": "linuxhint.com ",
"fantastisk": 100,
).Fatal ("Golang pro FATAL-besked")
log.WithFields (log.Felter
"website": "linuxhint.com ",
"fantastisk": 100,
).Panik ("Golang pro PANIC-besked")
log.WithFields (log.Felter
"website": "linuxhint.com ",
"fantastisk": 100,
).Fejlfinding ("Golang pro DEBUG-meddelelse")
Når vi kører dette program, ser vi følgende output:
Har bemærket noget? Log-erklæringerne efter Fatal-erklæringen vises ikke engang i vores output. Dette skyldes, at så snart en alvorlig fejl modtages, stopper programudførelsen i Golang.
Lad os ændre rækkefølgen af disse udsagn og kontrollere, om der også observeres ændringer i output:
Denne gang reagerede selv Panic Log-niveau på samme måde, men output var meget forskelligt og detaljeret.
Med Panik-logniveau skal du sørge for, at der også er trykt nok oplysninger om værtsmaskinen i output i konsollen, så arbejdet kan debugges.
Enklere måde at oprette logfiler på
I ovenstående opkald var logfiler ret detaljerede og med metadata også. Der er en lettere måde at logge dine beskeder på. Lad os prøve dette nu:
pakke hovedimport (
log "github.com / Sirupsen / logrus "
)
funk main ()
log.Fejlfinding ("Fejlfinding af data her.")
log.Info ("Beskeder til almindelig info")
log.Advar ("Du skal se på denne advarsel!")
log.Fejl ("Noget mislykkedes, men programmet fortsætter.")
// Opkald os.Afslut (1) efter logning
log.Fatal ("Jeg rejser.")
// Opkald til panik () efter logning
log.Panik ("Jeg bliver ikke udskrevet :(")
Her er output til programmet:
Adfærd til logning var den samme, men denne gang var de nemme at lave på kun en linje.
Konklusion
I dette indlæg studerede vi enkle, men nyttige eksempler på, hvordan vi kan logge vigtige meddelelser med forskellig sværhedsgrad og bredhed i vores applikationer ved hjælp af Logrus-pakken med Golang.