目的是想在控制台和文件同时输出,但是我这么写完以后却没有输出 Read Config……
我如果把 InitWriter 的整个代码都放在 init 里就能输出了……
为啥会这样😅
截取了一部分代码
不打算用第三方库,需求比较简单
go 刚学一个星期,有些实在不太懂,求教大佬了
package main
var logger *log.Logger
func init() {
logger = log.New(InitWriter(), "", log.Ldate|log.Ltime|log.Lshortfile)
logger.Println("Read Config……")
}
func InitWriter() io.Writer {
if !PathExists("./log/") {
os.Mkdir("./log/", 0773)
}
path := "./log/" + time.Now().Format("2006-01-02") + ".log"
f, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0773)
if err != nil {
log.Fatal(err)
}
defer f.Close()
writers := []io.Writer{
f,
os.Stdout}
return io.MultiWriter(writers...)
}