Selles õppetükis Golangi paketi Logrus paketist uurime erinevaid näiteid selle kohta, kui tõhusat logimist saab Go-s teha, ja näeme, kui olulised logid Go programmeerimiskeeles. Alustame kohe.
Alustades Go-ga
Siin on kataloogistruktuur, mille tegin oma Hello Worldi programmi jaoks:
Siin on meie loodud programm:
paketi peamineimport "fmt"
func main ()
fmt.Printf ("Tere, maailm.\ n ")
Saame ülaltoodud programmi käivitada järgmise käsuga:
mine jookse tere.mineKui oleme selle käsu käivitanud, näete siin väljundit:
Nüüd näeb see hea välja. Liigume oma põhiprogrammi juurde.
Logruse pakett Golangis
Logruse paketi Go-programmis kasutamiseks peame seda tegema saada seda. Käivitage järgmine käsk:
mine võta -t github.com / Sirupsen / logrusKui hakkame IntelliJ-is seda paketti kasutama, näeme seda viga, mille saame ühe klõpsuga lahendada:
Kui pakend kätte saab, saame seda kasutama hakata. Alustame lihtsa programmiga.
Põhiline metsaraie Logrusega
Alustame INFO taseme logimise väga elementaarsest näitest. Sisselogimist saab teha stringisõnumite ja metaandmetega võtmeväärtuste paaridena, mis ilmuvad sarnaselt.
paketi peamineimport (
log "github.com / Sirupsen / logrus "
)
func main ()
logi.WithFields (log.Väljad
"veebisait": "linuxhint.com ",
"vinge": 100,
"abi": 200,
).Info ("Golang pro")
Selle programmi käivitamisel näeme järgmist väljundit:
Nüüd on see nii kasulik kui värvikas!
Erinevad logimistasemed
Nüüd proovime veel ühte näidet, mis näitab erinevate Logruses saadaolevate logimistasandite kasutamist ja üldiselt. Nemad on:
- Info
- Hoiatus
- Tappev
- Silumine
- Paanika
Proovime koostada programmi ja vaadata, kuidas need logitasemed erinevad, kui nad meie programmis kuvatakse:
paketi peamineimport (
log "github.com / Sirupsen / logrus "
)
func main ()
logi.WithFields (log.Väljad
"veebisait": "linuxhint.com ",
"vinge": 100,
).Teave ("Golang pro INFO sõnum")
logi.WithFields (log.Väljad
"veebisait": "linuxhint.com ",
"vinge": 100,
).Warn ("Golang pro WARN-teade")
logi.WithFields (log.Väljad
"veebisait": "linuxhint.com ",
"vinge": 100,
).Saatuslik ("Golang pro FATAL-teade")
logi.WithFields (log.Väljad
"veebisait": "linuxhint.com ",
"vinge": 100,
).Paanika ("Golang pro PANIC sõnum")
logi.WithFields (log.Väljad
"veebisait": "linuxhint.com ",
"vinge": 100,
).Silumine ("Golang pro DEBUG sõnum")
Selle programmi käivitamisel näeme järgmist väljundit:
Midagi märganud? Fatal-avalduse järel olevaid logiväljendeid ei kuvata isegi meie väljundis. Seda seetõttu, et niipea kui saatuslik viga on saadud, peatatakse programmi täitmine Golangis.
Muutkem nende lausete järjekorda ja kontrollime, kas ka väljundis on täheldatud mõningaid muutusi:
Seekord reageeris isegi paanikalogi tase samal viisil, kuid väljund oli väga erinev ja üksikasjalik.
Paanikalogi tasemel veenduge, et konsooli väljundisse oleks trükitud ka piisavalt teavet hosti masina kohta, et tööd saaks siluda.
Lihtsam viis logide koostamiseks
Eespool nimetatud kõnede ajal olid logid üsna üksikasjalikud ja koos metaandmetega. Sõnumite logimiseks on lihtsam viis. Proovime seda kohe:
paketi peamineimport (
log "github.com / Sirupsen / logrus "
)
func main ()
logi.Silumine ("Andmete silumine siin.")
logi.Teave („Sõnumid üldiseks teabeks”)
logi.Warn ("Te peaksite seda hoiatust vaatama!")
logi.Viga ("Midagi ebaõnnestus, kuid programm jätkub.")
// kutsub os.Pärast logimist väljuge (1)
logi.Saatuslik ("ma lähen.")
// kutsub pärast logimist paanikat ()
logi.Paanika ("mind ei trükita :(")
Siin on programmi väljund:
Raietegevus oli sama, kuid seekord oli neid lihtne teha vaid ühe reaga.
Järeldus
Selles postituses uurisime lihtsaid, kuid kasulikke näiteid selle kohta, kuidas saaksime rakendustes Golangiga paketti Logrus kasutades olulisi ja erineva raskusastmega ning mitmekülgselt sõnumeid sisse logida.