对于Go语言的日志来说,如何将log写到指定的文件里面?这是非常有必的。
下面是一个简单的例子。
第一种方法:
package main
import (
"log"
"os"
"time"
)
func init() {
file := "./" +"log"+ ".txt"
logFile, err := os.OpenFile(file, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0766)
if err != nil {
panic(err)
}
log.SetOutput(logFile) // 将文件设置为log输出的文件
log.SetPrefix("[logTool]")
log.SetFlags(log.LstdFlags | log.Lshortfile | log.LUTC)
return
}
func main() {
log.Println("Hello laofan!") // log 还是可以作为输出的前缀
return
}
输出结果:
// message.txt里面 显示
[logTool]2021/09/30 15:30:05 log.go:24: Hello laofan!
第二种方法:
package main
import (
"log"
"os"
"time"
)
var loger *log.Logger
func init() {
file := "./" + time.Now().Format("20210930") + ".txt"
logFile, err := os.OpenFile(file, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0766)
if err != nil {
panic(err)
}
loger = log.New(logFile, "[logTool]",log.LstdFlags | log.Lshortfile | log.LUTC)
// 将文件设置为loger作为输出
return
}
func main() {
// 使用的时候,需要采用loger作为输出的前缀
loger.Println("Hello:laofan!")
return
}
输出结果:
// message.txt里面 显示
[logTool]2021/09/30 15:35:20 log.go:24: Hello laofan!