Golang

Golang Logrus-pakke

Golang Logrus-pakke

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

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

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

Lad os prøve at opbygge et program og se, hvordan disse logniveauer adskiller sig, når de vises i vores program:

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

Mus Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
De fleste Linux-distributioner leveres som standard med "libinput" -biblioteket til at håndtere inputhændelser på et system. Det kan behandle inputhæn...
Mus Remap dine museknapper forskelligt til anden software med X-Mouse Button Control
Remap dine museknapper forskelligt til anden software med X-Mouse Button Control
Måske har du brug for et værktøj, der kan ændre din muses kontrol med hver applikation, du bruger. Hvis dette er tilfældet, kan du prøve en applikatio...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har for nylig læst om Microsoft Sculpt Touch trådløs mus og besluttede at købe den. Efter at have brugt det et stykke tid besluttede jeg at dele m...