Heim > Artikel > Backend-Entwicklung > Wie protokolliere ich Nachrichten sowohl in der Konsole als auch in der Datei in Go?
So protokollieren Sie Nachrichten an mehrere Ziele in Go
Beim Protokollieren von Nachrichten in Go kann es erforderlich sein, Protokolle sowohl auf der Konsole auszugeben und eine Datei gleichzeitig. Während es einfach ist, Nachrichten mit log.SetOutput(logFile) ausschließlich an eine Datei weiterzuleiten, gibt es eine Möglichkeit, die Protokollierung sowohl in Terminals als auch in Zieldateien zu aktivieren.
Implementieren mehrerer Ziele
Um die Protokollierung an mehreren Zielen zu erreichen, verwenden Sie den io.MultiWriter. Wie der Name schon sagt, ermöglicht MultiWriter das gleichzeitige Schreiben an mehrere Autoren, ähnlich dem Unix-Befehl tee(1).
So implementieren Sie dies mit MultiWriter:
import ( "os" "io" "log" ) func main() { logFile, err := os.OpenFile("log.txt", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0666) if err != nil { panic(err) } // Initialize io.MultiWriter to write to both file and console mw := io.MultiWriter(os.Stdout, logFile) // Set output to MultiWriter log.SetOutput(mw) }
In diesem Beispiel , mw ist eine io.MultiWriter-Instanz, die sowohl in os.Stdout (Konsole) als auch in die Protokolldatei schreibt. Durch Festlegen von log.SetOutput(mw) werden alle nachfolgenden Protokollmeldungen in der Konsole gedruckt und in der angegebenen Datei protokolliert.
Das obige ist der detaillierte Inhalt vonWie protokolliere ich Nachrichten sowohl in der Konsole als auch in der Datei in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!