I denne leksjonen om Logrus-pakken i Golang, vil vi studere forskjellige eksempler på hvor effektiv logging kan gjøres i Go og se hvor viktige logger er i Go-programmeringsspråket. Vi kommer i gang nå.
Starter med Go
Her er katalogstrukturen som jeg laget for Hello World-programmet:
Her er programmet vi opprettet:
pakke hovedimporter "fmt"
func main ()
fmt.Printf ("Hei, verden.\ n ")
Vi kan kjøre programmet ovenfor med følgende kommando:
gå løp hei.gåNår vi har kjørt denne kommandoen, er her utgangen du vil se:
Nå ser det bra ut. La oss gå til vår hovedagenda.
Logrus-pakke i Golang
For å begynne å bruke Logrus-pakken i Go-programmet, må vi få den. Kjør følgende kommando:
gå og få -t github.com / Sirupsen / logrusNår vi begynner å bruke denne pakken i IntelliJ, ser vi denne feilen som vi kan løse med ett klikk:
Når du har fått pakken, kan vi begynne å bruke den. La oss starte med et enkelt program.
Grunnleggende logging med Logrus
Vi starter med et veldig grunnleggende INFO-nivåloggingseksempel. Logging kan gjøres med strengmeldinger og metadata i form av nøkkelverdipar som ser ut som de samme.
pakke hovedimportere (
logg "github.com / Sirupsen / logrus "
)
func main ()
Logg.WithFields (logg.Enger
"nettsted": "linuxhint.com ",
"fantastisk": 100,
"hjelp": 200,
).Info ("Golang pro")
Når vi kjører dette programmet, kan vi se følgende utdata:
Nå er det både nyttig og fargerikt!
Ulike loggningsnivåer
Nå vil vi prøve et annet eksempel som viser bruken av forskjellige loggingsnivåer som er tilgjengelige i Logrus og generelt. De er:
- Info
- Advarsel
- Fatal
- Feilsøk
- Panikk
La oss prøve å bygge et program og se hvordan disse loggnivåene er forskjellige når de vises i programmet vårt:
pakke hovedimportere (
logg "github.com / Sirupsen / logrus "
)
func main ()
Logg.WithFields (logg.Enger
"nettsted": "linuxhint.com ",
"fantastisk": 100,
).Info ("Golang pro INFO-melding")
Logg.WithFields (logg.Enger
"nettsted": "linuxhint.com ",
"fantastisk": 100,
).Advarsel ("Golang pro WARN-melding")
Logg.WithFields (logg.Enger
"nettsted": "linuxhint.com ",
"fantastisk": 100,
).Fatal ("Golang pro FATAL-melding")
Logg.WithFields (logg.Enger
"nettsted": "linuxhint.com ",
"fantastisk": 100,
).Panikk ("Golang pro PANIC-melding")
Logg.WithFields (logg.Enger
"nettsted": "linuxhint.com ",
"fantastisk": 100,
).Feilsøk ("Golang pro DEBUG-melding")
Når vi kjører dette programmet, ser vi følgende utdata:
Legg merke til noe? Logguttalelsene etter Fatal-uttalelsen vises ikke engang i utdataene våre. Dette er fordi så snart en dødelig feil mottas, stopper programutførelsen i Golang.
La oss endre rekkefølgen på disse uttalelsene og sjekke om noen endringer i produksjonen også blir observert:
Denne gangen reagerte til og med Panic Log-nivået på samme måte, men utdataene var veldig forskjellige og detaljerte.
Med panikkloggnivå sørger du for at nok informasjon om vertsmaskinen også skrives ut i konsollen slik at arbeidet kan feilsøkes.
Enklere måte å lage logger på
I samtalene ovenfor var loggene ganske detaljerte og med metadata også. Det er en enklere måte å logge på meldingene dine. La oss prøve dette nå:
pakke hovedimportere (
logg "github.com / Sirupsen / logrus "
)
func main ()
Logg.Feilsøk ("Feilsøkingsdata her.")
Logg.Info ("Meldinger for vanlig info")
Logg.Advarsel ("Du bør se på denne advarselen!")
Logg.Feil ("Noe mislyktes, men programmet vil fortsette.")
// Ringer os.Avslutt (1) etter loggføring
Logg.Fatal ("Jeg drar.")
// Kaller panikk () etter logging
Logg.Panikk ("Jeg blir ikke skrevet ut :(")
Her er utgangen for programmet:
Oppførselen for logging var den samme, men denne gangen var de enkle å lage i bare en linje.
Konklusjon
I dette innlegget studerte vi enkle, men nyttige eksempler på hvordan vi kan logge viktige meldinger med ulik alvorlighetsgrad og grovhet i applikasjonene våre ved hjelp av Logrus-pakken med Golang.