Šioje „Golang“ paketo „Logrus“ pamokoje išnagrinėsime įvairius pavyzdžius, kaip efektyviai atlikti registravimą „Go“ sistemoje, ir pamatysime, kiek svarbūs žurnalai yra „Go“ programavimo kalboje. Mes pradėsime dabar.
Pradedant nuo „Go“
Čia yra katalogų struktūra, kurią sukūriau savo „Hello World“ programai:
Čia yra programa, kurią sukūrėme:
paketo pagrindinisimportuoti „fmt“
func main ()
fmt.Printf ("Sveiki, pasauli.\ n ")
Mes galime paleisti pirmiau nurodytą programą naudodami šią komandą:
eik bėgti labas.eikKai paleisime šią komandą, pamatysite išvestį:
Dabar tai atrodo gerai. Pereikime prie savo pagrindinės darbotvarkės.
„Logrus“ paketas Golange
Norėdami pradėti naudoti „Logrus“ paketą „Go“ programoje, turime gauti tai. Paleiskite šią komandą:
eik gauti -t github.com / Sirupsen / logrusPradėdami naudoti šį paketą „IntelliJ“, matome šią klaidą, kurią galime išspręsti vienu paspaudimu:
Gavę pakuotę, galime pradėti ja naudotis. Pradėkime nuo paprastos programos.
Pagrindinis medienos ruoša naudojant „Logrus“
Pradėsime nuo labai paprasto INFO lygio registravimo pavyzdžio. Prisijungti galima naudojant eilutės pranešimus ir metaduomenis raktų ir reikšmių porų pavidalu, kurie atrodo vienodi.
paketo pagrindinisimportas (
žurnalas "github.com / Sirupsen / logrus “
)
func main ()
žurnalas.WithFields (žurnalas.Laukai
„svetainė“: „linuxhint“.com ",
„nuostabus“: 100,
„pagalba“: 200,
).Informacija („Golang pro“)
Vykdydami šią programą galime pamatyti tokį išėjimą:
Dabar tai naudinga ir spalvinga!
Įvairūs registravimo lygiai
Dabar mes išbandysime kitą pavyzdį, kuris parodys įvairių „Logrus“ prieinamų registravimo lygių naudojimą ir apskritai. Jie yra:
- Informacija
- Įspėjimas
- Mirtinas
- Derinti
- Panika
Pabandykime sukurti programą ir pamatyti, kaip šie žurnalo lygiai skiriasi, kai jie atsiranda mūsų programoje:
paketo pagrindinisimportas (
žurnalas "github.com / Sirupsen / logrus “
)
func main ()
žurnalas.WithFields (žurnalas.Laukai
"svetainė": "linuxhint.com ",
„nuostabus“: 100,
).Informacija („Golang pro INFO pranešimas“)
žurnalas.WithFields (žurnalas.Laukai
„svetainė“: „linuxhint“.com ",
„nuostabus“: 100,
).Įspėti („Golang pro WARN pranešimas“)
žurnalas.WithFields (žurnalas.Laukai
„svetainė“: „linuxhint“.com ",
„nuostabus“: 100,
).Fatal („Golang pro FATAL pranešimas“)
žurnalas.WithFields (žurnalas.Laukai
„svetainė“: „linuxhint“.com ",
„nuostabus“: 100,
).Panika („Golang pro PANIC pranešimas“)
žurnalas.WithFields (žurnalas.Laukai
„svetainė“: „linuxhint“.com ",
„nuostabus“: 100,
).Derinti („Golang pro DEBUG pranešimas“)
Vykdydami šią programą pamatysime tokį išėjimą:
Kažką pastebėjo? Žurnalo sakiniai po Fatal pareiškimo net nerodomi mūsų išvestyje. Taip yra todėl, kad kai tik gaunama lemtinga klaida, programos vykdymas sustabdomas „Golang“.
Pakeiskime šių sakinių tvarką ir patikrinkime, ar pastebimi tam tikri išvesties pokyčiai:
Šį kartą net „Panic Log“ lygis reagavo tuo pačiu būdu, tačiau išvestis buvo labai skirtinga ir išsami.
Naudodami panikos žurnalo lygį, įsitikinkite, kad konsolės išvestyje taip pat atspausdinta pakankamai informacijos apie pagrindinę mašiną, kad darbą būtų galima derinti.
Paprastesnis žurnalų sudarymo būdas
Ankstesniuose skambučiuose žurnalai buvo gana išsamūs ir su metaduomenimis. Yra paprastesnis būdas registruoti pranešimus. Išbandykime tai dabar:
paketo pagrindinisimportas (
žurnalas "github.com / Sirupsen / logrus “
)
func main ()
žurnalas.Derinti ("Derinti duomenis čia.")
žurnalas.Informacija („Bendros informacijos pranešimai“)
žurnalas.Įspėti ("Turėtumėte pažvelgti į šį įspėjimą!")
žurnalas.Klaida („Kažkas nepavyko, bet programa bus tęsiama.")
// Skambina os.Po prisijungimo išeikite iš (1)
žurnalas.Lemtinga („Aš išeinu.")
// Po prisijungimo iškviečia paniką ()
žurnalas.Panika („Manęs nespausdins :(“)
Štai programos išvestis:
Kirtimas buvo toks pats, tačiau šį kartą juos buvo lengva padaryti tik vienoje eilutėje.
Išvada
Šiame įraše mes ištyrėme paprastus, bet naudingus pavyzdžius, kaip galime užregistruoti svarbius įvairaus sunkumo ir daugialypiškumo pranešimus savo programose, naudodami „Logrus“ paketą su „Golang“.