Pakiet Golang Logrus

Pakiet Golang Logrus

W tej lekcji na temat pakietu Logrusa w Golang będziemy zbadać różne przykłady, w jaki sposób można wykonać skuteczne rejestrowanie w Go, i zobaczymy, jak ważne są dzienniki w języku programowania. Zaczniemy teraz.

Zaczynając od Go

Oto struktura katalogu, którą stworzyłem dla mojego programu Hello World:

Oto program, który stworzyliśmy:

Pakiet Main
importować „fmt”
func main ()
fmt.Printf („Cześć, świat.\N")

Możemy uruchomić powyższy program z następującym poleceniem:

idźcie, cześć.Iść

Po uruchomieniu tego polecenia oto wyjście, które zobaczysz:

Teraz to wygląda dobrze. Przejdźmy do naszego głównego programu.

Pakiet Logrus w Golang

Aby zacząć korzystać z pakietu Logrus w programie GO, musimy Dostawać To. Uruchom następujące polecenie:

Idź dostaj -t github.com/Sirupsen/Logrus

Kiedy zaczynamy używać tego pakietu w IntelliJ, widzimy ten błąd, który możemy rozwiązać za jednym kliknięciem:

Po uzyskaniu pakietu możemy zacząć go używać. Zacznijmy od prostego programu.

Podstawowe logowanie z Logrusem

Zaczniemy od bardzo podstawowego przykładu rejestrowania poziomu informacji. Rejestrowanie można wykonać za pomocą komunikatów stringowych i meta-data w formie par kluczowych, które wyglądają jak ta sama.

Pakiet Main
import (
log "github.com/Sirupsen/Logrus "
)
func main ()
dziennik.Z pola (log.Pola
„Witryna”: „Linuxhint.com ",
„Awesome”: 100,
„Pomoc”: 200,
).Informacje („Golang Pro”)

Kiedy uruchamiamy ten program, możemy zobaczyć następujące dane wyjściowe:

Teraz jest to zarówno przydatne, jak i kolorowe!

Różne poziomy rejestrowania

Teraz wypróbujemy inny przykład, który pokaże użycie różnych poziomów rejestrowania dostępnych w Logrus i ogólnie. Oni są:

  • Informacje
  • Ostrzeżenie
  • Fatalny
  • Odpluskwić
  • Panika

Spróbujmy zbudować program i zobaczmy, jak różnią się te poziomy dziennika, gdy pojawiają się w naszym programie:

Pakiet Main
import (
log "github.com/Sirupsen/Logrus "
)
func main ()
dziennik.Z pola (log.Pola
„Witryna”: „Linuxhint.com ",
„Awesome”: 100,
).Informacje („komunikat Golang Pro Info”)
dziennik.Z pola (log.Pola
„Witryna”: „Linuxhint.com ",
„Awesome”: 100,
).Ostaj („Golang Pro Warn Message”)
dziennik.Z pola (log.Pola
„Witryna”: „Linuxhint.com ",
„Awesome”: 100,
).Fatal („Golang Pro Fatal Message”)
dziennik.Z pola (log.Pola
„Witryna”: „Linuxhint.com ",
„Awesome”: 100,
).Panic („Golang Pro Panic Message”)
dziennik.Z pola (log.Pola
„Witryna”: „Linuxhint.com ",
„Awesome”: 100,
).Debugowanie („komunikat debugowania Golang Pro”)

Po uruchomieniu tego programu zobaczymy następujące dane wyjściowe:

Coś zauważyłem? Instrukcje dziennika po fatalnej instrukcji nie pojawiają się nawet na naszym wyjściu. Wynika to z faktu, że gdy tylko pojawi się błąd śmiertelny, wykonanie programu zatrzymuje się w Golang.

Zmodyfikujmy kolejność tych stwierdzeń i sprawdź, czy obserwowane są również pewne zmiany wyjściowe:

Tym razem nawet poziom dziennika paniki zareagował w ten sam sposób, ale wyjście było bardzo różne i szczegółowe.

Przy poziomie dziennika paniki upewniasz się, że wystarczająco dużo informacji o komputerze hosta wydrukowano również na wyjściu w konsoli.

Prostszy sposób tworzenia dzienników

W powyższych połączeniach dzienniki były dość szczegółowe i również z metadanami. Istnieje łatwiejszy sposób na zalogowanie się wiadomości. Spróbujmy teraz:

Pakiet Main
import (
log "github.com/Sirupsen/Logrus "
)
func main ()
dziennik.Debugowanie („Dane debugowania tutaj.")
dziennik.Informacje („Wiadomości dla wspólnych informacji”)
dziennik.Ostrzegaj („Powinieneś spojrzeć na to ostrzeżenie!")
dziennik.Błąd („Coś nie powiodło się, ale program będzie kontynuowany.")
// dzwoni do systemu operacyjnego.Wyjdź (1) Po zalogowaniu
dziennik.Fatalny („Odchodzę.")
// wywołuje Panic () po zalogowaniu
dziennik.Panic („Nie zostanie wydrukowany :(”)

Oto dane wyjściowe dla programu:

Zachowanie rejestrowania było takie samo, ale tym razem były łatwe do zrobienia w jednej linii.

Wniosek

W tym poście studiowaliśmy proste, ale przydatne przykłady, w jaki sposób możemy rejestrować ważne wiadomości o odmiennej ciężkości i gadatości w naszych aplikacjach za pomocą pakietu Logrus z Golang.