在Go 中記錄到控制台和檔案
在Go 中,您可以使用log.SetOutput(logFile 輕鬆將日誌訊息定向到文件)。但是,如果您還想在控制台中顯示這些訊息怎麼辦?
使用 io.MultiWriter
要實現此目的,您可以使用 io.MultiWriter。這將建立一個寫入器,將其寫入複製到所有提供的寫入器。這類似於 Unix 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)
在此範例中,原始程式碼的唯一變更是建立 io.MultiWriter 並將記錄器的輸出設為其。現在,所有日誌訊息都將寫入控制台和指定文件,提供了一種即時監控日誌的便捷方法,同時還維護持久性日誌。
以上是如何在 Go 中同時登入控制台和檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!