V této lekci o balíčku Logrus v Golangu si prostudujeme různé příklady toho, jak efektivní lze protokolování v Go, a jak důležité jsou protokoly v programovacím jazyce Go. Začneme hned.
Počínaje Go
Zde je adresářová struktura, kterou jsem vytvořil pro svůj program Hello World:
Zde je program, který jsme vytvořili:
balíček hlavníimportovat „fmt“
func main ()
fmt.Printf („Ahoj, svět.\ n ")
Výše uvedený program můžeme spustit pomocí následujícího příkazu:
běž běž ahoj.jítJakmile spustíme tento příkaz, uvidíte výstup, který uvidíte:
Teď to vypadá dobře. Pojďme k naší hlavní agendě.
Balíček Logrus v Golangu
Abychom mohli začít používat balíček Logrus v programu Go, musíme dostat to. Spusťte následující příkaz:
jdi si - github.com / Sirupsen / logrusKdyž začneme používat tento balíček v IntelliJ, uvidíme tuto chybu, kterou můžeme vyřešit jedním kliknutím:
Jakmile balíček získáte, můžeme jej začít používat. Začněme jednoduchým programem.
Základní protokolování pomocí Logrusu
Začneme velmi základním příkladem protokolování úrovně INFO. Protokolování lze provádět pomocí řetězcových zpráv a metadat ve formě párů klíč – hodnota, které vypadají stejně.
balíček hlavníimport (
přihlásit "github.com / Sirupsen / logrus "
)
func main ()
log.WithFields (log.Pole
"website": "linuxhint.com ",
"awesome": 100,
"help": 200,
).Informace („Golang pro“)
Když spustíme tento program, můžeme vidět následující výstup:
Nyní je to užitečné i barevné!
Různé úrovně protokolování
Nyní zkusíme další příklad, který ukáže použití různých úrovní protokolování dostupných v Logrusu a obecně. Oni jsou:
- Info
- Varování
- Fatální
- Ladit
- Panika
Zkusme vytvořit program a uvidíme, jak se tyto úrovně protokolu liší, když se objeví v našem programu:
balíček hlavníimport (
přihlásit "github.com / Sirupsen / logrus "
)
func main ()
log.WithFields (log.Pole
"website": "linuxhint.com ",
"awesome": 100,
).Info („Informační zpráva Golang pro“)
log.WithFields (log.Pole
"website": "linuxhint.com ",
"awesome": 100,
).Varovat („VAROVÁNÍ zprávy Golang pro“)
log.WithFields (log.Pole
"website": "linuxhint.com ",
"awesome": 100,
).Fatální („zpráva Golang pro FATAL“)
log.WithFields (log.Pole
"website": "linuxhint.com ",
"awesome": 100,
).Panika („zpráva Golang pro PANIC“)
log.WithFields (log.Pole
"website": "linuxhint.com ",
"awesome": 100,
).Debug („zpráva Golang pro DEBUG“)
Když spustíme tento program, uvidíme následující výstup:
Něco si všiml? Příkazy protokolu za příkazem Fatal se ani neobjeví v našem výstupu. Je to proto, že jakmile dojde k závažné chybě, zastaví se provádění programu v Golangu.
Pojďme upravit pořadí těchto příkazů a zkontrolovat, zda jsou pozorovány také některé změny ve výstupu:
Tentokrát dokonce úroveň Panic Log reagovala stejným způsobem, ale výstup byl velmi odlišný a podrobný.
Na úrovni Panic logu se ujistíte, že na výstupu v konzole je také vytištěno dostatek informací o hostitelském počítači, aby bylo možné práci ladit.
Jednodušší způsob vytváření protokolů
Ve výše uvedených hovorech byly protokoly docela podrobné a také s metadaty. Existuje jednodušší způsob protokolování zpráv. Zkusme to teď:
balíček hlavníimport (
přihlásit "github.com / Sirupsen / logrus "
)
func main ()
log.Debug („Ladění dat zde.")
log.Informace („Zprávy pro běžné informace“)
log.Varovat („Měli byste se podívat na toto varování!")
log.Chyba („Něco se nezdařilo, ale program bude pokračovat.")
// Volá os.Po přihlášení ukončete (1)
log.Fatální („Odcházím.")
// Po přihlášení volá panic ()
log.Panic („I will not be printed :(“)
Zde je výstup pro program:
Chování protokolování bylo stejné, ale tentokrát se daly snadno provést pouze v jednom řádku.
Závěr
V tomto příspěvku jsme studovali jednoduché, ale užitečné příklady toho, jak můžeme v našich aplikacích protokolovat důležité zprávy s různou závažností a výřečností pomocí balíčku Logrus s Golang.