日志是程序中比较重要的信息,但有时又不想输出到屏幕上。下面就对golang中把日志输出到指定文件做如下记录:
package main
import (
"flag"
"fmt"
"log"
"os"
)
var (
logF = flag.String("log", "test.log", "Log file name") //将运行时参数 地址 绑定到logF 运行时没带参数默认logF为test.log
)
func main() {
flag.Parse() //解析参数付给logF
outfile, err := os.OpenFile(*logF, os.O_CREATE|os.O_RDWR|os.O_APPEND, 0666) //打开文件,若果文件不存在就创建一个同名文件并打开
if err != nil {
fmt.Println(*outfile, "open failed")
os.Exit(1)
}
log.SetOutput(outfile) //设置log的输出文件,不设置log输出默认为stdout
log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile) //设置答应日志每一行前的标志信息,这里设置了日期,打印时间,当前go文件的文件名
//write log
log.Printf("test out:%v \n", "test log") //向日志文件打印日志,可以看到在你设置的输出文件中有输出内容了
}
文件保存为test.go
运行为:log
go run test.go -log test.log 或者 go run test.go -log /绝对路径/文件名
可以去看日志了
有疑问加站长微信联系(非本文作者)