Šajā nodarbībā par Logrus paketi Golangā mēs pētīsim dažādus piemērus par to, cik efektīvi reģistrēšanu var veikt Go, un redzēsim, cik svarīgi žurnāli ir Go programmēšanas valodā. Mēs sāksim tagad.
Sākot ar Go
Šeit ir direktoriju struktūra, ko izveidoju savai Hello World programmai:
Šeit ir programma, kuru mēs izveidojām:
paketes galvenāimportēt "fmt"
func main ()
fmt.Printf ("Sveika, pasaule.\ n ")
Mēs varam palaist iepriekš minēto programmu ar šādu komandu:
ej skriet sveiki.aizietKad mēs palaidīsim šo komandu, šeit redzēsit izeju:
Tagad tas izskatās labi. Pārejam uz mūsu galveno darba kārtību.
Logrus pakete Golangā
Lai sāktu izmantot Logrus pakotni Go programmā, mums tas ir jādara gūt to. Palaidiet šādu komandu:
ej dabūt -t github.com / Sirupsen / logrusSākot izmantot šo pakotni IntelliJ, mēs redzam šo kļūdu, kuru varam novērst ar vienu klikšķi:
Kad esat saņēmis paketi, mēs varam sākt to izmantot. Sāksim ar vienkāršu programmu.
Pamata mežizstrāde, izmantojot Logrus
Mēs sāksim ar ļoti vienkāršu INFO līmeņa reģistrēšanas piemēru. Reģistrēšanu var veikt ar virknes ziņojumiem un metadatiem atslēgu un vērtību pāru veidā, kas izskatās vienādi.
paketes galvenāimports (
žurnāls "github.com / Sirupsen / logrus "
)
func main ()
žurnāls.WithFields (žurnāls.Lauki
"vietne": "linuxhint.com ",
"lielisks": 100,
"palīdzība": 200,
).Informācija ("Golang pro")
Palaidot šo programmu, mēs varam redzēt šādu izvadi:
Tagad tas ir gan noderīgi, gan krāsaini!
Dažādi mežizstrādes līmeņi
Tagad mēs izmēģināsim vēl vienu piemēru, kas parādīs dažādu Logrus pieejamo reģistrēšanas līmeņu izmantošanu un kopumā. Viņi ir:
- Info
- Brīdinājums
- Liktenīgs
- Atkļūdošana
- Panika
Mēģināsim izveidot programmu un uzzināsim, kā šie žurnāla līmeņi atšķiras, kad tie parādās mūsu programmā:
paketes galvenāimports (
žurnāls "github.com / Sirupsen / logrus "
)
func main ()
žurnāls.WithFields (žurnāls.Lauki
"vietne": "linuxhint.com ",
"lieliski": 100,
).Informācija ("Golang pro INFO ziņojums")
žurnāls.WithFields (žurnāls.Lauki
"vietne": "linuxhint.com ",
"lieliski": 100,
).Warn ("Golang pro WARN ziņojums")
žurnāls.WithFields (žurnāls.Lauki
"vietne": "linuxhint.com ",
"lielisks": 100,
).Liktenīgs ("Golang pro FATAL message")
žurnāls.WithFields (žurnāls.Lauki
"vietne": "linuxhint.com ",
"lieliski": 100,
).Panika ("Golang pro PANIC ziņojums")
žurnāls.WithFields (žurnāls.Lauki
"vietne": "linuxhint.com ",
"lieliski": 100,
).Atkļūdošana ("Golang pro DEBUG ziņojums")
Palaidot šo programmu, mēs redzēsim šādu izvadi:
Kaut ko pamanījis? Žurnāla paziņojumi pēc Fatal paziņojuma pat netiek parādīti mūsu izejā. Tas ir tāpēc, ka tiklīdz tiek saņemta liktenīga kļūda, programmas izpilde Golangā tiek pārtraukta.
Pārveidosim šo paziņojumu secību un pārbaudīsim, vai ir novērotas arī dažas izejas izmaiņas:
Šoreiz pat panikas žurnāla līmenis reaģēja vienādi, bet izvade bija ļoti atšķirīga un detalizēta.
Izmantojot panikas žurnāla līmeni, pārliecinieties, ka pietiekami daudz informācijas par resursdatora mašīnu arī tiek izdrukāta konsoles izvadā, lai darbu varētu atkļūdot.
Vienkāršāks žurnālu veidošanas veids
Iepriekšējos zvanos žurnāli bija diezgan detalizēti un ar metadatiem. Ir vienkāršāks veids, kā reģistrēt ziņojumus. Izmēģināsim to tūlīt:
paketes galvenāimports (
žurnāls "github.com / Sirupsen / logrus "
)
func main ()
žurnāls.Atkļūdošana ("Datu atkļūdošana šeit.")
žurnāls.Informācija (“Ziņojumi parastai informācijai”)
žurnāls.Warn ("Jums vajadzētu apskatīt šo brīdinājumu!")
žurnāls.Kļūda ("Kaut kas neizdevās, bet programma turpināsies.")
// Zvani os.Pēc reģistrēšanās izejiet no (1)
žurnāls.Liktenīgs ("Es eju prom.")
// Pēc reģistrēšanās izsauc paniku ()
žurnāls.Panika ("Man netiks izdrukāts :(")
Programmas izeja ir šāda:
Mežizstrādes darbība bija tāda pati, taču šoreiz tos bija viegli izdarīt tikai vienā rindā.
Secinājums
Šajā amatā mēs pētījām vienkāršus, bet noderīgus piemērus, kā mēs varam pieteikties svarīgus ziņojumus ar dažādu smagumu un daudzveidību savās lietojumprogrammās, izmantojot Logrus paketi ar Golang.