Nach seiner wörtlichen Bedeutung aus dem Oxford Dictionary kann das Wort „Log“ definiert werden als „eine offizielle Aufzeichnung von Ereignissen während einer bestimmten Zeitspanne, insbesondere einer Reise auf einem Schiff oder in einem Flugzeug“. Im Bereich der Programmierung verwenden Programmierer diesen Begriff ebenfalls, um wichtige Ereignisse und Aktivitäten festzuhalten, die für den ordnungsgemäßen Ablauf eines Programms wichtig sind. Die Aktivität oder das Erstellen eines Protokolls wird als Logging bezeichnet und die Werkzeuge, die diese Aufgabe erfüllen, als Logger.

Das Protokoll wird in einer Datei dokumentiert, die Log File genannt wird. In der Sprache der Computerprogrammierer könnte eine Protokolldatei als

eine Datei beschrieben werden, die ein Register von Ereignissen, Prozessen, Nachrichten und der Kommunikation zwischen verschiedenen kommunizierenden Softwareanwendungen und dem Betriebssystem enthält. Protokolldateien sind in ausführbarer Software, Betriebssystemen und Programmen vorhanden, wobei alle Meldungen und Prozessdetails aufgezeichnet werden. Jede ausführbare Datei erzeugt eine Protokolldatei, in der alle Aktivitäten vermerkt werden.

– Technopedia

Eine Protokolldatei ist für uns Programmierer wichtig, um wichtige Ereignisse für bestimmte Fälle wie Debugging, Auswertung und Überwachung festzuhalten. In diesem Artikel möchte ich einen Weg aufzeigen, wie man ein einfaches Logger-Paket erstellt, das auf der Server-Seite mit Golang implementiert werden kann.

Logger-Paket in Golang

Unser Code beginnt mit der Deklaration einer Paketklausel namens „logger“ und dem Import der benötigten Pakete: „fmt“, „log“, „os“ und „path/filepath“. Wir werden zwei Arten von Loggern verwenden: Common Log und Error Log. Ersterer wird verwendet, um allgemeine Ereignisse wie Anmeldung, Abmeldung, abgeholte Daten, Postdaten usw. zu protokollieren. Letzterer wird hingegen speziell für die Protokollierung von Fehlerereignissen verwendet. Im Kern basiert unser Logger auf einem Log-Objekt. Daher werden wir zwei Variablen „CommonLog“ und „ErrorLog“ (beachten Sie, dass der erste Buchstabe in Großbuchstaben geschrieben ist, um anzuzeigen, dass die Variable exportiert wird) mit einem Zeiger auf die Logger-Struktur erstellen.

package loggerimport (
"fmt"
"log"
"os"
"path/filepath"
)var CommonLog *log.Loggervar ErrorLog *log.Logger

Als nächstes werden wir unseren Logger starten. Beginnen wir mit der Deklaration des Dateipfades. Dazu geben wir den Speicherort unserer Protokolldatei mit dem Befehl Abs aus dem Dateipfadpaket an (in diesem Fall verwenden wir den absoluten Speicherort der Protokolldatei). Wir behalten dann den Verweis in der filePath-Variable.

Innerhalb der init-Funktion fahren wir fort, indem wir den Befehl festlegen, der ausgeführt wird, wenn die Protokolldatei vom Programm geöffnet wird (diese Einstellung wird in der openLogfile-Variable referenziert). Dies geschieht mit dem „OpenFile“-Befehl aus dem „os“-Paket, indem wir den Dateipfad (unter Verwendung unserer „filePath“-Variablen zusätzlich zum Dateinamen), Flags und fileMode angeben. In diesem Teil müssen wir auch den Namen der Protokolldatei festlegen; in diesem Artikel benennen wir die Protokolldatei als log.log (beachten Sie die Erweiterung log). Achten Sie besonders auf die Flags und den fileMode, die in der Funktion verwendet werden. In diesem Fall können die Flags als Indikatoren beschrieben werden, die dem Programm mitteilen, was es mit der geöffneten Datei tun soll. Dazu verwenden wir die vordefinierten Konstanten aus dem „os“-Paket:

  • os.0_RDWR = öffne die Datei lesend und schreibend
  • os.0_CREATE = erstelle eine neue Datei, wenn keine existiert
  • os.0_APPEND = Daten beim Schreiben an die Datei anhängen

Währenddessen ist der fileMode „0666“ der Code, um die Standard-Dateiberechtigung zum Ändern der Datei zu setzen (weitere Informationen über die Benutzerberechtigung finden Sie hier).

Weiterhin werden wir unsere CommonLog- und ErrorLog-Variablen umschreiben, damit sie ein neues Protokoll enthalten. Wir tun dies mit dem „New“-Befehl aus dem „log“-Paket, indem wir 1) den Kanal für die Protokolldatei, 2) ein Präfix und die erforderlichen 3) Flags angeben.

  1. Kanal für die Protokolldatei: Wir verwenden hier unsere openLogfile-Variable
  2. Präfix: Dies ist der Bezeichner für unser Protokoll. Wir können eine eigene Zeichenkette verwenden, um den Typ des Logs zu definieren (z.B. „CommonLogger“ oder „ErrorLogger“)
  3. Flags: Die Flags für diese Funktion bezeichnen die Informationen, die wir in unserem Log haben wollen. Zu diesem Zweck verwenden wir die eingebaute Funktion aus dem Log-Paket in Go (Details können hier eingesehen werden).

Logger in unseren Code injizieren

Schließlich können wir unseren Logger injizieren, um wichtige Ereignisse, die in unserem Programm passieren, zu protokollieren. Dies kann mit dem „Prinln“-Befehl geschehen, wie wir ihn mit dem „fmt“-Paket verwendet haben.

Hier in der Protokolldatei wird das Ergebnis des Loggers die folgende Form haben:

Es ist fertig!

So, das war’s Leute! wir haben ein Logger-Paket erstellt, das einfach als Abhängigkeit in unser Go-Programm injiziert werden kann. Hoffentlich kann es für euch Programmierer nützlich sein.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.