对于Go语言的日志来说,如何将log写到指定的文件里面?这是非常有必的。
下面是一个简单的例子。

第一种方法:

  1. package main
  2. import (
  3. "log"
  4. "os"
  5. "time"
  6. )
  7. func init() {
  8. file := "./" +"log"+ ".txt"
  9. logFile, err := os.OpenFile(file, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0766)
  10. if err != nil {
  11. panic(err)
  12. }
  13. log.SetOutput(logFile) // 将文件设置为log输出的文件
  14. log.SetPrefix("[logTool]")
  15. log.SetFlags(log.LstdFlags | log.Lshortfile | log.LUTC)
  16. return
  17. }
  18. func main() {
  19. log.Println("Hello laofan!") // log 还是可以作为输出的前缀
  20. return
  21. }

输出结果:

  1. // message.txt里面 显示
  2. [logTool]2021/09/30 15:30:05 log.go:24: Hello laofan!

第二种方法:

  1. package main
  2. import (
  3. "log"
  4. "os"
  5. "time"
  6. )
  7. var loger *log.Logger
  8. func init() {
  9. file := "./" + time.Now().Format("20210930") + ".txt"
  10. logFile, err := os.OpenFile(file, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0766)
  11. if err != nil {
  12. panic(err)
  13. }
  14. loger = log.New(logFile, "[logTool]",log.LstdFlags | log.Lshortfile | log.LUTC)
  15. // 将文件设置为loger作为输出
  16. return
  17. }
  18. func main() {
  19. // 使用的时候,需要采用loger作为输出的前缀
  20. loger.Println("Hello:laofan!")
  21. return
  22. }

输出结果:

  1. // message.txt里面 显示
  2. [logTool]2021/09/30 15:35:20 log.go:24: Hello laofan!