目的是想在控制台和文件同时输出,但是我这么写完以后却没有输出 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...)
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.