V tejto lekcii o balíku Logrus v Golangu si preštudujeme rôzne príklady toho, ako efektívne je možné protokolovanie vykonávať v Go, a uvidíme, aké dôležité sú protokoly v programovacom jazyku Go. Teraz začneme.
Počnúc Go
Tu je adresárová štruktúra, ktorú som vytvoril pre svoj program Hello World:
Tu je program, ktorý sme vytvorili:
balíček hlavnýimportovať „fmt“
func main ()
fmt.Printf („Ahoj, svet.\ n ")
Vyššie uvedený program môžeme spustiť nasledujúcim príkazom:
choď behať ahoj.choďPo spustení tohto príkazu uvidíte výstup, ktorý uvidíte:
Teraz to vyzerá dobre. Prejdime k našej hlavnej agende.
Balík Logrus v Golangu
Ak chcete začať používať balík Logrus v programe Go, musíme dostať to. Spustite nasledujúci príkaz:
choď si -t github.com / Sirupsen / logrusKeď začneme používať tento balík v IntelliJ, uvidíme túto chybu, ktorú môžeme vyriešiť jedným kliknutím:
Hneď ako balíček získate, môžeme ho začať používať. Začnime jednoduchým programom.
Základné protokolovanie pomocou protokolu Logrus
Začneme veľmi základným príkladom protokolovania na úrovni INFO. Protokol je možné vykonať pomocou reťazcových správ a metadát vo forme párov kľúč - hodnota, ktoré vyzerajú rovnako.
balíček hlavnýdovoz (
prihlásiť sa "github.com / Sirupsen / logrus "
)
func main ()
log.WithFields (log.Polia
"website": "linuxhint.com ",
"super": 100,
"pomoc": 200,
).Informácie („Golang pro“)
Keď spustíme tento program, môžeme vidieť nasledujúci výstup:
Teraz je to užitočné aj farebné!
Rôzne úrovne ťažby dreva
Teraz skúsime ďalší príklad, ktorý ukáže použitie rôznych úrovní protokolovania dostupných v Logruse a všeobecne. Oni sú:
- Info
- Pozor
- Fatálne
- Debug
- Panika
Pokúsme sa zostaviť program a pozrime sa, ako sa tieto úrovne denníka líšia, keď sa objavia v našom programe:
balíček hlavnýdovoz (
prihlásiť sa "github.com / Sirupsen / logrus "
)
func main ()
log.WithFields (log.Polia
"website": "linuxhint.com ",
"super": 100,
).Informácie („INFO správa Golang pro“)
log.WithFields (log.Polia
"website": "linuxhint.com ",
"super": 100,
).Varovať („VÝSTRAŽNÁ správa Golang pro“)
log.WithFields (log.Polia
"website": "linuxhint.com ",
"super": 100,
).Fatálna („správa Golang pro FATAL“)
log.WithFields (log.Polia
"website": "linuxhint.com ",
"super": 100,
).Panika („správa Golang pro PANIC“)
log.WithFields (log.Polia
"website": "linuxhint.com ",
"úžasné": 100,
).Debug („správa Golang pro DEBUG“)
Keď spustíme tento program, uvidíme nasledujúci výstup:
Niečo si všimol? Príkazy protokolu po vyhlásení Fatal sa neobjavia ani v našom výstupe. Je to preto, že akonáhle dôjde k závažnej chybe, vykonávanie programu sa v Golangu zastaví.
Upravme poradie týchto príkazov a skontrolujte, či sú pozorované aj nejaké zmeny vo výstupe:
Tentokrát dokonca úroveň Panic Log reagovala rovnakým spôsobom, ale výstup bol veľmi odlišný a podrobný.
Pomocou úrovne protokolu Panic sa ubezpečte, že na výstupe v konzole sa tlačí aj dostatok informácií o hostiteľskom počítači, aby bolo možné prácu ladiť.
Jednoduchší spôsob vytvárania denníkov
Vo vyššie uvedených hovoroch boli protokoly dosť podrobné a tiež s metadátami. Existuje ľahší spôsob, ako prihlásiť svoje správy. Skúsme to teraz:
balíček hlavnýdovoz (
prihlásiť sa "github.com / Sirupsen / logrus "
)
func main ()
log.Debug („Ladenie údajov tu.„)
log.Informácie („Správy pre bežné informácie“)
log.Varovať („Mali by ste sa pozrieť na toto varovanie!„)
log.Chyba („Niečo zlyhalo, ale program bude pokračovať.„)
// Hovory os.Po prihlásení výstup (1)
log.Fatal („Odchádzam.„)
// Po prihlásení volá panic ()
log.Panika („Nebudem tlačiť :(“)
Tu je výstup pre program:
Chovanie prihlasovania bolo rovnaké, tentokrát sa však dali ľahko urobiť iba v jednom riadku.
Záver
V tomto príspevku sme študovali jednoduché, ale užitočné príklady toho, ako môžeme v našich aplikáciách zaznamenávať dôležité správy s rôznou závažnosťou a výrečnosťou pomocou balíka Logrus s Golangom.