Golang Logrus -pakke

Golang Logrus -pakke

I denne leksjonen om Logrus -pakke 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åk. Vi kommer i gang nå.

Starter med go

Her er katalogstrukturen jeg laget for Hello World -programmet mitt:

Her er programmet vi opprettet:

pakkehoved
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, her er utgangen du vil se:

Nå ser det bra ut. La oss flytte til hovedagendaen vår.

Logrus -pakke i Golang

For å begynne å bruke Logrus -pakke i GO -programmet, må vi den. Kjør følgende kommando:

GO Get -T GitHub.com/sirrupsen/logruss

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 veldig grunnleggende informasjon om informasjon. Logging kan gjøres med strengmeldinger og metadata i form av nøkkelverdipar som ser ut som det samme.

pakkehoved
import (
Logg "GitHub.com/sirrupsen/logruss "
)
func main ()
Logg.WithFields (log.Enger
"Nettsted": "Linuxhint.com ",
"Awesome": 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!

Forskjellige tømmernivåer

Nå vil vi prøve et annet eksempel som vil vise bruken av forskjellige loggnivåer som er tilgjengelige i Logrus og generelt. De er:

  • Info
  • Advarsel
  • Fatal
  • Feilsøking
  • Panikk

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

pakkehoved
import (
Logg "GitHub.com/sirrupsen/logruss "
)
func main ()
Logg.WithFields (log.Enger
"Nettsted": "Linuxhint.com ",
"Awesome": 100,
).Info ("Golang Pro Info Message")
Logg.WithFields (log.Enger
"Nettsted": "Linuxhint.com ",
"Awesome": 100,
).Warn ("Golang Pro Warn Message")
Logg.WithFields (log.Enger
"Nettsted": "Linuxhint.com ",
"Awesome": 100,
).Fatal ("Golang Pro Fatal Message")
Logg.WithFields (log.Enger
"Nettsted": "Linuxhint.com ",
"Awesome": 100,
).Panic ("Golang Pro Panic Message")
Logg.WithFields (log.Enger
"Nettsted": "Linuxhint.com ",
"Awesome": 100,
).Debug ("Golang Pro Debug Message")

Når vi kjører dette programmet, vil vi se følgende utdata:

La merke til noe? Logguttalelsene etter at den fatale uttalelsen ikke en gang vises 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 utsagnene og sjekke om noen endringer i utgangen også blir observert:

Denne gangen reagerte til og med panikkloggnivået på samme måte, men produksjonen var veldig annerledes og detaljert.

Med panikkloggnivå sørger du for at nok informasjon om vertsmaskinen også er trykt i utgangen i konsollen slik at arbeidet er feilaktig.

Enklere måte å lage logger på

I samtalene ovenfor var logger ganske detaljerte og også med metadata. Det er en enklere måte å logge meldingene dine på. La oss prøve dette nå:

pakkehoved
import (
Logg "GitHub.com/sirrupsen/logruss "
)
func main ()
Logg.Debug ("Feilsøkingsdata her.")
Logg.Info ("Meldinger for vanlig info")
Logg.Advare ("Du bør se på denne advarselen!")
Logg.Feil ("noe mislyktes, men programmet vil fortsette.")
// Ringer OS.Avslutt (1) Etter logging
Logg.Fatal ("Jeg drar.")
// ringer panikk () etter logging
Logg.Panikk ("Jeg blir ikke trykt :(")

Her er utdataene for programmet:

Oppførselen for logging var den samme, men denne gangen var de enkle å gjøre på bare en linje.

Konklusjon

I dette innlegget studerte vi enkle, men nyttige eksempler på hvordan vi kan logge viktige meldinger med forskjellig alvorlighetsgrad og verbositet i applikasjonene våre ved hjelp av Logrus -pakken med Golang.