V tej lekciji o paketu Logrus v Golangu bomo preučili različne primere učinkovitosti beleženja v programu Go in videli, kako pomembni so dnevniki v programskem jeziku Go. Zdaj bomo začeli.
Začenši z Go
Tu je struktura imenikov, ki sem jo naredil za svoj program Hello World:
Tukaj je program, ki smo ga ustvarili:
glavni paketuvoz "fmt"
func main ()
fmt.Printf ("Pozdravljen, svet.\ n ")
Zgornji program lahko zaženemo z naslednjim ukazom:
pojdi teči zdravo.pojdiKo zaženemo ta ukaz, bomo videli izhod:
Zdaj je to videti dobro. Pojdimo na naš glavni program.
Logrus paket v Golangu
Za začetek uporabe paketa Logrus v programu Go moramo dobili to. Zaženite naslednji ukaz:
pojdi po -t github.com / Sirupsen / logrusKo začnemo uporabljati ta paket v IntelliJ, vidimo to napako, ki jo lahko odpravimo z enim klikom:
Ko dobite paket, ga lahko začnemo uporabljati. Začnimo s preprostim programom.
Osnovno beleženje z Logrusom
Začeli bomo z zelo osnovnim primerom beleženja na ravni INFO. Beleženje je mogoče s sporočili niza in metapodatki v obliki parov ključ-vrednost, ki so videti enaki.
glavni paketuvoz (
dnevnik "github.com / Sirupsen / logrus "
)
func main ()
log.WithFields (log.Polja
"spletno mesto": "linuxhint.com ",
"super": 100,
"pomoč": 200,
).Informacije ("Golang pro")
Ko zaženemo ta program, lahko vidimo naslednji izhod:
Zdaj je to uporabno in barvito!
Različne stopnje sečnje
Zdaj bomo poskusili še en primer, ki bo prikazal uporabo različnih stopenj beleženja, ki so na voljo v Logrusu in na splošno. To so:
- Informacije
- Opozorilo
- Usodno
- Odpravljanje napak
- Panika
Poskusimo zgraditi program in preverimo, kako se te ravni dnevnika razlikujejo, ko se pojavijo v našem programu:
glavni paketuvoz (
dnevnik "github.com / Sirupsen / logrus "
)
func main ()
log.WithFields (log.Polja
"website": "linuxhint.com ",
"super": 100,
).Informacije ("Golang pro INFO sporočilo")
log.WithFields (log.Polja
"spletno mesto": "linuxhint.com ",
"super": 100,
).Opozorilo ("Golang pro WARN message")
log.WithFields (log.Polja
"spletno mesto": "linuxhint.com ",
"super": 100,
).Usodno ("sporočilo Golang pro FATAL")
log.WithFields (log.Polja
"spletno mesto": "linuxhint.com ",
"super": 100,
).Panika ("Golang pro PANIC sporočilo")
log.WithFields (log.Polja
"website": "linuxhint.com ",
"super": 100,
).Odpravljanje napak ("Golang pro DEBUG message")
Ko zaženemo ta program, bomo videli naslednje rezultate:
Nekaj opazil? Izjave dnevnika za stavkom Fatal se niti ne pojavijo v našem izhodu. To je zato, ker se izvajanje programa v Golangu ustavi takoj, ko prejme usodno napako.
Spremenimo vrstni red teh izjav in preverimo, ali so opažene tudi nekatere spremembe v izhodu:
Tokrat se je celo raven Panic Log odzvala na enak način, vendar so bili rezultati zelo različni in podrobni.
Z nivojem dnevnika Panic poskrbite, da se v izhodu v konzoli natisne tudi dovolj informacij o gostiteljskem računalniku, tako da je delo mogoče odpraviti.
Enostavnejši način izdelave dnevnikov
V zgornjih klicih so bili dnevniki precej podrobni in z metapodatki. Obstaja enostavnejši način za prijavo sporočil. Poskusimo zdaj:
glavni paketuvoz (
dnevnik "github.com / Sirupsen / logrus "
)
func main ()
log.Odpravljanje napak ("Odpravljanje napak tukaj.")
log.Informacije ("Sporočila za skupne informacije")
log.Warn ("Oglejte si to opozorilo!")
log.Napaka ("Nekaj ni uspelo, vendar se bo program nadaljeval.")
// Pokliče os.Po dnevniku zapustite (1)
log.Usodno ("odhajam.")
// Po prijavi pokliče panic ()
log.Panic ("Ne bom natisnjen :(")
Tu je rezultat programa:
Obnašanje pri sečnji je bilo enako, toda tokrat jih je bilo enostavno narediti v samo eni vrstici.
Zaključek
V tej objavi smo preučevali preproste, a uporabne primere, kako lahko s pomočjo paketa Logrus z Golangom z različno resnostjo in podrobnostjo beležimo pomembna sporočila.