golang

Golang Logrus-Paket

Golang Logrus-Paket

In dieser Lektion zum Logrus-Paket in Golang untersuchen wir verschiedene Beispiele dafür, wie effektiv die Protokollierung in Go durchgeführt werden kann, und sehen, wie wichtig Protokolle in der Programmiersprache Go sind. Wir fangen jetzt an.

Beginnend mit Go

Hier ist die Verzeichnisstruktur, die ich für mein Hello World-Programm erstellt habe:

Hier ist das von uns erstellte Programm:

Hauptpaket
"fmt" importieren
func main()
fmt.Printf("Hallo Welt.\n")

Wir können das obige Programm mit dem folgenden Befehl ausführen:

geh laufen hallo.gehen

Sobald wir diesen Befehl ausführen, sehen Sie hier die Ausgabe:

Das sieht jetzt gut aus. Kommen wir zu unserer Hauptagenda.

Logrus-Paket in Golang

Um das Logrus-Paket im Go-Programm zu verwenden, müssen wir erhalten es. Führen Sie den folgenden Befehl aus:

geh und hol -t github.com/Sirupsen/logrus

Wenn wir dieses Paket in IntelliJ verwenden, sehen wir diesen Fehler, den wir mit einem Klick beheben können:

Sobald Sie das Paket erhalten haben, können wir es verwenden. Beginnen wir mit einem einfachen Programm.

Einfache Protokollierung mit Logrus

Wir beginnen mit einem sehr einfachen Beispiel für die Protokollierung auf INFO-Ebene. Die Protokollierung kann mit String-Nachrichten und Metadaten in Form von Schlüssel-Wert-Paaren erfolgen, die gleich aussehen.

Hauptpaket
importieren (
log "github".com/Sirupsen/logrus"
)
func main()
Log.WithFields(log.Felder
"website": "linuxhint.com",
"super": 100,
"Hilfe":   200,
).Info("Golang-Profi")

Wenn wir dieses Programm ausführen, sehen wir die folgende Ausgabe:

Das ist sowohl nützlich als auch bunt!

Verschiedene Protokollierungsebenen

Jetzt werden wir ein weiteres Beispiel ausprobieren, das die Verwendung verschiedener Logging-Levels zeigt, die in Logrus und im Allgemeinen verfügbar sind. Sie sind:

Versuchen wir, ein Programm zu erstellen und zu sehen, wie sich diese Protokollebenen unterscheiden, wenn sie in unserem Programm erscheinen:

Hauptpaket
importieren (
log "github".com/Sirupsen/logrus"
)
func main()
Log.WithFields(log.Felder
"website": "linuxhint.com",
"super": 100,
).Info("Golang pro INFO-Nachricht")
Log.WithFields(log.Felder
"website": "linuxhint.com",
"super": 100,
).Warn("Golang pro WARN-Meldung")
Log.WithFields(log.Felder
"website": "linuxhint.com",
"super": 100,
).Fatal("Golang-Pro-FATAL-Nachricht")
Log.WithFields(log.Felder
"website": "linuxhint.com",
"super": 100,
).Panik("Golang pro PANIC-Nachricht")
Log.WithFields(log.Felder
"website": "linuxhint.com",
"super": 100,
).Debug("Golang pro DEBUG-Nachricht")

Wenn wir dieses Programm ausführen, sehen wir die folgende Ausgabe:

Etwas bemerkt? Die Log-Anweisungen nach der Fatal-Anweisung erscheinen nicht einmal in unserer Ausgabe. Dies liegt daran, dass die Programmausführung in Golang stoppt, sobald ein schwerwiegender Fehler empfangen wird.

Lassen Sie uns die Reihenfolge dieser Anweisungen ändern und prüfen, ob auch einige Änderungen in der Ausgabe beobachtet werden:

Diesmal reagierte sogar das Panic Log-Level auf die gleiche Weise, aber die Ausgabe war sehr unterschiedlich und detailliert.

Mit Panic-Log-Level stellen Sie sicher, dass genügend Informationen über den Host-Rechner auch in der Ausgabe in der Konsole gedruckt werden, damit die Arbeit debuggbar ist.

Einfachere Möglichkeit, Protokolle zu erstellen

In den obigen Anrufen waren die Protokolle ziemlich detailliert und auch mit Metadaten. Es gibt eine einfachere Möglichkeit, Ihre Nachrichten zu protokollieren. Versuchen wir es jetzt:

Hauptpaket
importieren (
log "github".com/Sirupsen/logrus"
)
func main()
Log.Debug("Daten hier debuggen.")
Log.Info("Nachrichten für allgemeine Informationen")
Log.Warn("Sie sollten sich diese Warnung ansehen!")
Log.Error("Etwas ist fehlgeschlagen, aber das Programm wird fortgesetzt.")
// Ruft os auf.Beenden(1) nach der Anmeldung
Log.Fatal("Ich gehe.")
// Ruft panic() nach dem Loggen auf
Log.Panic("Ich werde nicht gedruckt :(")

Hier die Ausgabe für das Programm:

Das Verhalten beim Loggen war das gleiche, aber diesmal waren sie einfach in nur einer Zeile zu erstellen.

Fazit

In diesem Beitrag haben wir einfache, aber nützliche Beispiele untersucht, wie wir mit dem Logrus-Paket mit Golang wichtige Nachrichten mit unterschiedlichem Schweregrad und Ausführlichkeit in unseren Anwendungen protokollieren können.

So entwickeln Sie ein Spiel unter Linux
Vor einem Jahrzehnt hätten nicht viele Linux-Benutzer vorhergesagt, dass ihr Lieblingsbetriebssystem eines Tages eine beliebte Spieleplattform für kom...
Open-Source-Ports kommerzieller Spiele-Engines
Kostenlose, quelloffene und plattformübergreifende Spiel-Engine-Nachbildungen können verwendet werden, um sowohl alte als auch einige der relativ neue...
Beste Befehlszeilenspiele für Linux
Die Befehlszeile ist nicht nur Ihr größter Verbündeter bei der Verwendung von Linux – sie kann auch eine Quelle der Unterhaltung sein, da Sie damit vi...