golang

Golang Logrus-pakke

Golang Logrus-pakke

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 hoved
importer "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 den. Kjør følgende kommando:

gå og få -t github.com / Sirupsen / logrus

Nå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 hoved
importere (
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:

La oss prøve å bygge et program og se hvordan disse loggnivåene er forskjellige når de vises i programmet vårt:

pakke hoved
importere (
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 hoved
importere (
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.

Kjemp om Wesnoth-opplæringen
Kampen om Wesnoth er et av de mest populære open source-strategispillene du kan spille på dette tidspunktet. Ikke bare har dette spillet vært i utvikl...
0 A.D. Opplæringen
Ut av de mange strategispillene der ute, 0 A.D. klarer å skille seg ut som en omfattende tittel og et veldig dypt, taktisk spill til tross for å være ...
Unity3D opplæring
Introduksjon til Unity 3D Unity 3D er en kraftig spillutviklingsmotor. Det er kryssplattform, det er det lar deg lage spill for mobil, web, stasjonær ...