問題解決方法:
在這個程序中,我們將使用 log.SetOutput() 和 log.Print() 函數將日誌寫入指定的文件。將帶有時間戳的日誌消息保存到指定文件中。
程序/源代碼:
下麵給出了使用 log.SetOutput() 函數將日誌寫入指定文件的源代碼。給定的程序在 ubuntu 18.04 操作係統上編譯和執行成功。
// Golang program to write log into specified
// file using log.SetOutput() function
package main
import "log"
import "os"
import "fmt"
func main() {
filePtr, err:= os.OpenFile("mylogs.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0666)
if err != nil {
log.Fatal(err)
}
//Set log output to the "mylogs.log" file.
log.SetOutput(filePtr)
log.Print("Log line1")
log.Print("Log line2")
filePtr.Close()
fmt.Println("Program finished")
}
輸出:
$ go run hello.go Program finished $ cat mylogs.log 2021/04/22 01:46:18 Log line1 2021/04/22 01:46:18 Log line2
說明:
在上麵的程序中,我們聲明了包 main。 main 包用於告訴 Go 語言編譯器必須編譯該包並生成可執行文件。在這裏,我們導入了 "fmt" 包以使用 Println() 函數,我們還導入了 "log" 包以使用日誌函數。
在 main() 函數中,我們使用 log.SetOutput() 函數將 log.Print() 函數的輸出設置為使用 log.SetOutput() 函數的文件綁定。
相關用法
- Golang log.SetPrefix()用法及代碼示例
- Golang log.SetFlags()用法及代碼示例
- Golang log.Print()用法及代碼示例
- Golang log.Fatal()用法及代碼示例
- Golang log.Fatalf()用法及代碼示例
- Golang log.Panic()用法及代碼示例
- Golang log.Printf()用法及代碼示例
- Golang log.Panicf()用法及代碼示例
- Golang strconv.QuoteToASCII()用法及代碼示例
- Golang io.CopyBuffer()用法及代碼示例
- Golang reflect.Kind()用法及代碼示例
- Golang time.Parse()用法及代碼示例
- Golang bits.RotateLeft16()用法及代碼示例
- Golang math.Ceil()用法及代碼示例
- Golang atomic.AddInt32()用法及代碼示例
- Golang strings.ToLowerSpecial()用法及代碼示例
- Golang time.Time.MarshalJSON()用法及代碼示例
- Golang io.Pipe()用法及代碼示例
- Golang strings.EqualFold()用法及代碼示例
- Golang reflect.FuncOf()用法及代碼示例
注:本文由純淨天空篩選整理自 Golang program to write log into specified file using log.SetOutput() function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。