Heim >Backend-Entwicklung >Golang >Wie melde ich mich in Go sowohl bei der Konsole als auch bei der Datei an?

Wie melde ich mich in Go sowohl bei der Konsole als auch bei der Datei an?

Linda Hamilton
Linda HamiltonOriginal
2024-11-16 17:51:031004Durchsuche

How to Log to Both Console and File in Go?

Protokollierung sowohl in der Konsole als auch in der Datei in Go

In Go können Sie Protokollnachrichten mithilfe von log.SetOutput(logFile) ganz einfach in eine Datei umleiten ). Was aber, wenn Sie diese Meldungen auch in der Konsole anzeigen möchten?

Io.MultiWriter verwenden

Um dies zu erreichen, können Sie io.MultiWriter verwenden. Dadurch wird ein Writer erstellt, der seine Schreibvorgänge an alle bereitgestellten Writer dupliziert. Dies ähnelt dem Unix-Befehl tee(1).

logFile, err := os.OpenFile("log.txt", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0666)
if err != nil {
    panic(err)
}

// Create a MultiWriter that writes to both the console and the file.
mw := io.MultiWriter(os.Stdout, logFile)

// Set the logger's output to the MultiWriter.
log.SetOutput(mw)

In diesem Beispiel besteht die einzige Änderung gegenüber dem Originalcode in der Erstellung des io.MultiWriter und dem Festlegen der Ausgabe des Loggers darauf. Jetzt werden alle Protokollmeldungen sowohl in die Konsole als auch in die angegebene Datei geschrieben. Dies bietet eine bequeme Möglichkeit, Protokolle in Echtzeit zu überwachen und gleichzeitig ein dauerhaftes Protokoll zu führen.

Das obige ist der detaillierte Inhalt vonWie melde ich mich in Go sowohl bei der Konsole als auch bei der Datei an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn