Golang Logrus Paket

Golang Logrus Paket

In dieser Lektion über das Logrus -Paket in Golang werden wir verschiedene Beispiele dafür untersuchen. Wir werden jetzt anfangen.

Beginnend mit Go

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

Hier ist das Programm, das wir erstellt haben:

Paket Main
importieren "fmt"
func main ()
fmt.Printf ("Hallo, Welt.\N")

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

Geh run Hallo.gehen

Sobald wir diesen Befehl ausgeführt haben, ist hier die Ausgabe, die Sie sehen werden:

Das sieht gut aus. Lassen Sie uns zu unserer Hauptagenda wechseln.

Lamuspaket in Golang

Um das Logruspaket im GO -Programm zu verwenden, müssen wir erhalten Es. Führen Sie den folgenden Befehl aus:

Geh und git -t Github.com/sirupsen/logrus

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

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

Grundfuhrprotokollierung mit Logrus

Wir werden mit einem sehr grundlegenden Beispiel für die Protokollierung von Info Level beginnen. Die Protokollierung kann mit String-Nachrichten und Meta-Daten in Form von Schlüsselwertpaaren durchgeführt werden, die wie der gleiche erscheinen.

Paket Main
importieren (
Protokoll "GitHub.Com/Sirupsen/Logrus "
)
func main ()
Protokoll.Withfields (Protokoll.Felder
"Website": "LinuxHint.com ",
"großartig": 100,
"Hilfe": 200,
).Info ("Golang Pro")

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

Das ist sowohl nützlich als auch farbenfroh!

Verschiedene Protokollierungsstufen

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

  • Die Info
  • Warnung
  • Tödlich
  • Debuggen
  • Panik

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

Paket Main
importieren (
Protokoll "GitHub.Com/Sirupsen/Logrus "
)
func main ()
Protokoll.Withfields (Protokoll.Felder
"Website": "LinuxHint.com ",
"großartig": 100,
).Info ("Golang Pro info Message")
Protokoll.Withfields (Protokoll.Felder
"Website": "LinuxHint.com ",
"großartig": 100,
).Warnen ("Golang Pro Warn Message")
Protokoll.Withfields (Protokoll.Felder
"Website": "LinuxHint.com ",
"großartig": 100,
).Fatal ("Golang Pro Fatal Message")
Protokoll.Withfields (Protokoll.Felder
"Website": "LinuxHint.com ",
"großartig": 100,
).Panik ("Golang Pro Paniknachricht")
Protokoll.Withfields (Protokoll.Felder
"Website": "LinuxHint.com ",
"großartig": 100,
).Debugg ("Golang Pro Debug -Nachricht")

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

Bemerkte etwas? Die Protokollanweisungen nach der fatalen Anweisung erscheint nicht einmal in unserer Ausgabe. Dies liegt daran.

Ändern wir die Reihenfolge dieser Aussagen und überprüfen Sie, ob einige Ausgabenänderungen ebenfalls beobachtet werden:

Diesmal reagierte sogar Paniklog -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 -Computer auch in der Ausgabe in der Konsole gedruckt werden, damit die Arbeit debuggierbar ist.

Einfachere Möglichkeit, Protokolle zu erstellen

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

Paket Main
importieren (
Protokoll "GitHub.Com/Sirupsen/Logrus "
)
func main ()
Protokoll.Debugug ("Debugging -Daten hier."))
Protokoll.Info ("Nachrichten für gemeinsame Informationen")
Protokoll.Warnen ("Sie sollten sich diese Warnung ansehen!"))
Protokoll.Fehler ("etwas fehlgeschlagen, aber das Programm wird fortgesetzt."))
// Ruft Betriebssystem an.Beenden Sie (1) nach der Protokollierung
Protokoll.Tödlich ("Ich gehe."))
// ruft Panic () nach der Protokollierung an
Protokoll.Panik ("Ich werde nicht gedruckt :(")

Hier ist die Ausgabe für das Programm:

Das Verhalten für die Protokollierung war das gleiche, aber diesmal waren sie in nur einer Zeile leicht zu machen.

Abschluss

In diesem Beitrag haben wir einfache, aber nützliche Beispiele dafür untersucht, wie wir wichtige Nachrichten mit unterschiedlichem Schweregrad und Ausführungsbild in unseren Anwendungen mithilfe des Logrus -Pakets mit Golang protokollieren können.