Ebben a Golang-i Logrus csomagról szóló leckében különféle példákat fogunk tanulmányozni arról, hogy mennyire hatékony a naplózás a Go-ban, és megnézzük, mennyire fontosak a naplók a Go programozási nyelvben. Most elkezdjük.
Kezdve a Go-val
Itt található a Hello World programhoz készített könyvtárstruktúra:
Itt van a létrehozott program:
csomag főimport "fmt"
func main ()
fmt.Printf ("Helló, világ!.\ n ")
A fenti programot a következő paranccsal futtathatjuk:
menj szaladj hello.megyMiután futtattuk ezt a parancsot, itt látható a kimenet:
Most ez jól néz ki. Térjünk át a fő menetrendünkre.
Logrus csomag Golangban
A Logrus csomag használatának megkezdéséhez a Go programban meg kell tennünk kap azt. Futtassa a következő parancsot:
menj szerezd -t github.com / Sirupsen / logrusAmikor elkezdjük használni ezt a csomagot az IntelliJ alkalmazásban, látjuk ezt a hibát, amelyet egyetlen kattintással megoldhatunk:
Miután megkapta a csomagot, elkezdhetjük használni. Kezdjük egy egyszerű programmal.
Alapvető naplózás a Logrusszal
Kezdjük egy nagyon egyszerű INFO szintű naplózási példával. A naplózást String üzenetekkel és metaadatokkal lehet elvégezni kulcs-érték párok formájában, amelyek ugyanúgy jelennek meg.
csomag főimport (
log "github.com / Sirupsen / logrus "
)
func main ()
napló.WithFields (log.Mezők
"website": "linuxhint.com ",
"félelmetes": 100,
"segítség": 200,
).Info ("Golang pro")
A program futtatásakor a következő kimenetet láthatjuk:
Most ez egyszerre hasznos és színes!
Különböző naplózási szintek
Most megpróbálunk egy másik példát, amely bemutatja a Logrusban elérhető és általában használt különféle naplózási szintek használatát. Ők:
- Info
- Figyelem
- Halálos
- Hibakeresés
- Pánik
Próbálkozzunk egy program felépítésével, és nézzük meg, hogy ezek a naplószintek hogyan különböznek, amikor megjelennek a programunkban:
csomag főimport (
log "github.com / Sirupsen / logrus "
)
func main ()
napló.WithFields (log.Mezők
"website": "linuxhint.com ",
"félelmetes": 100,
).Info ("Golang pro INFO üzenet")
napló.WithFields (log.Mezők
"website": "linuxhint.com ",
"félelmetes": 100,
).Figyelmeztetés ("Golang pro WARN üzenet")
napló.WithFields (log.Mezők
"website": "linuxhint.com ",
"félelmetes": 100,
).Végzetes ("Golang pro FATAL message")
napló.WithFields (log.Mezők
"website": "linuxhint.com ",
"félelmetes": 100,
).Pánik ("Golang pro PANIC üzenet")
napló.WithFields (log.Mezők
"website": "linuxhint.com ",
"félelmetes": 100,
).Hibakeresés ("Golang pro DEBUG üzenet")
A program futtatásakor a következő kimenetet látjuk:
Észrevett valamit? A Fatal utasítás utáni napló utasítások nem is jelennek meg a kimenetünkben. Ennek oka, hogy amint végzetes hiba érkezik, a program végrehajtása leáll Golangban.
Módosítsuk ezeknek az utasításoknak a sorrendjét, és ellenőrizzük, hogy a kimeneten is megfigyelhető-e valamilyen változás:
Ezúttal még a Pánik Log szintje is ugyanúgy reagált, de a kimenet nagyon eltérő és részletes volt.
A pániknapló szintjén meg kell győződnie arról, hogy a konzol kimenetén is elég információ található a gazdagépről, hogy a munka hibakereshető legyen.
Naplók készítésének egyszerűbb módja
A fenti hívások során a Naplók elég részletesek voltak és metaadatokkal is voltak ellátva. Van egy egyszerűbb módja az üzenetek naplózásának. Próbálja ki most:
csomag főimport (
log "github.com / Sirupsen / logrus "
)
func main ()
napló.Debug ("Az adatok hibakeresése itt.")
napló.Info ("Üzenetek a gyakori információkért")
napló.Figyelmeztetés ("Meg kell néznie ezt a figyelmeztetést!")
napló.Hiba ("Valami nem sikerült, de a program folytatódik.")
// hívja az os-t.Kilépés (1) naplózás után
napló.Végzetes ("elmegyek.")
// Naplózást követően hívja a pánikot ()
napló.Pánik ("Nem nyomtatnak ki :(")
Itt van a program kimenete:
A fakitermelés viselkedése ugyanaz volt, de ezúttal könnyen elkészíthetők csak egy sorban.
Következtetés
Ebben a bejegyzésben egyszerű, de hasznos példákat tanulmányoztunk arról, hogyan lehet naplózni fontos üzeneteinket különböző súlyossággal és részletességgel az alkalmazásainkban a Logrus csomag és a Golang segítségével.