Melog Serentak ke Konsol dan Fail dalam Go
Untuk mengarahkan mesej log ke fail, kod itu biasanya menggunakan log.SetOutput(logFile) . Walau bagaimanapun, jika anda inginkan kedua-dua output konsol dan log masuk ke fail, berikut ialah penyelesaian menggunakan io.MultiWriter.
Apakah io.MultiWriter?
An io.MultiWriter membenarkan menulis data ke beberapa destinasi serentak. Ia menyerupai tingkah laku arahan Unix tee.
Penyelesaian
Untuk log masuk ke kedua-dua konsol dan fail:
logFile, err := os.OpenFile("log.txt", os.O_CREATE | os.O_APPEND | os.O_RDWR, 0666) if err != nil { panic(err) }
mw := io.MultiWriter(os.Stdout, logFile)
log.SetOutput(mw)
Contoh
package main import ( "log" "os" "io" ) func main() { logFile, err := os.OpenFile("log.txt", os.O_CREATE | os.O_APPEND | os.O_RDWR, 0666) if err != nil { panic(err) } mw := io.MultiWriter(os.Stdout, logFile) log.SetOutput(mw) log.Println("This is a log message") }
Atas ialah kandungan terperinci Bagaimana untuk Log ke Konsol dan Fail serentak dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!