I den här lektionen om Logrus-paketet i Golang kommer vi att studera olika exempel på hur effektiv loggning kan göras i Go och se hur viktiga loggar är på Go-programmeringsspråket. Vi kommer igång nu.
Börjar med Go
Här är katalogstrukturen som jag skapade för mitt Hello World-program:
Här är programmet vi skapade:
paket huvudimportera "fmt"
funk main ()
fmt.Printf ("Hej världen.\ n ")
Vi kan köra programmet ovan med följande kommando:
gå springa hej.gåNär vi har kört det här kommandot, här är den utdata du kommer att se:
Nu ser det bra ut. Låt oss gå till vår huvudagenda.
Logrus-paketet i Golang
För att börja använda Logrus-paketet i Go-programmet måste vi skaffa sig Det. Kör följande kommando:
gå och få -t github.com / Sirupsen / logrusNär vi börjar använda detta paket i IntelliJ ser vi det här felet som vi kan lösa med ett klick:
När du har fått paketet kan vi börja använda det. Låt oss börja med ett enkelt program.
Grundläggande loggning med Logrus
Vi börjar med ett mycket enkelt exempel på INFO-nivåloggning. Loggning kan göras med strängmeddelanden och metadata i form av nyckel-värdepar som ser ut som samma.
paket huvudimportera (
logg "github.com / Sirupsen / logrus "
)
funk main ()
logga.WithFields (logg.Fält
"webbplats": "linuxhint.com ",
"fantastisk": 100,
"hjälp": 200,
).Info ("Golang pro")
När vi kör det här programmet kan vi se följande utdata:
Nu är det både användbart och färgstarkt!
Olika loggningsnivåer
Nu ska vi prova ett annat exempel som visar användningen av olika loggningsnivåer som finns tillgängliga i Logrus och i allmänhet. Dom är:
- Info
- Varning
- Dödlig
- Felsöka
- Panik
Låt oss försöka bygga ett program och se hur dessa loggnivåer skiljer sig åt när de visas i vårt program:
paket huvudimportera (
logg "github.com / Sirupsen / logrus "
)
funk main ()
logga.WithFields (log.Fält
"webbplats": "linuxhint.com ",
"fantastisk": 100,
).Info ("Golang pro INFO-meddelande")
logga.WithFields (log.Fält
"webbplats": "linuxhint.com ",
"fantastisk": 100,
).Varna ("Golang pro WARN-meddelande")
logga.WithFields (log.Fält
"webbplats": "linuxhint.com ",
"fantastisk": 100,
).Fatal ("Golang pro FATAL meddelande")
logga.WithFields (log.Fält
"webbplats": "linuxhint.com ",
"fantastisk": 100,
).Panik ("Golang pro PANIC-meddelande")
logga.WithFields (log.Fält
"webbplats": "linuxhint.com ",
"fantastisk": 100,
).Felsöka ("Golang pro DEBUG-meddelande")
När vi kör det här programmet ser vi följande utdata:
Märkte något? Logguttalandena efter Fatal-uttalandet visas inte ens i vår produktion. Detta beror på att så snart ett allvarligt fel mottas slutar programkörningen i Golang.
Låt oss ändra ordningen på dessa uttalanden och kontrollera om vissa förändringar i produktionen också observeras:
Den här gången reagerade även panikloggnivån på samma sätt men produktionen var väldigt annorlunda och detaljerad.
Med panikloggnivå ser du till att tillräckligt med information om värdmaskinen också skrivs ut i konsolen så att arbetet kan debuggable.
Enklare sätt att skapa loggar
I ovanstående samtal var loggarna ganska detaljerade och med metadata också. Det finns ett enklare sätt att logga dina meddelanden. Låt oss prova detta nu:
paket huvudimportera (
logg "github.com / Sirupsen / logrus "
)
funk main ()
logga.Felsökning ("Felsökningsdata här.")
logga.Info ("Meddelanden för vanlig information")
logga.Varna ("Du bör titta på den här varningen!")
logga.Fel ("Något misslyckades men programmet fortsätter.")
// Samtal os.Avsluta (1) efter loggning
logga.Fatal ("Jag lämnar.")
// Anropar panik () efter loggning
logga.Panik ("Jag kommer inte att skrivas ut :(")
Här är utdata för programmet:
Beteendet för loggning var detsamma men den här gången var de lätta att göra på bara en rad.
Slutsats
I det här inlägget studerade vi enkla men användbara exempel på hur vi kan logga viktiga meddelanden med olika svårighetsgrad och detaljer i våra applikationer med hjälp av Logrus-paketet med Golang.