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

下面是一个简单的例子。

 

第一种方法:

go代码

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!  

 

第二种方法:

go代码示例

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!
``

灰子作于二零二一年九月三十日。