我有数百个使用 log.Println() 写入日志文件的子例程
我正在使用 log.Println 写入 error.log 文件。
func main() {
e, err := os.OpenFile("error.log", os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
fmt.Printf("error opening file: %v", err)
os.Exit(1)
}
defer e.Close()
errLog := log.New(e, ">>>", log.Ldate|log.Ltime)
for i:=0; i<500; i++ {
go worker(errLog)
}
}
func worker(errLog log.Logger) {
// Do some work
errLog.Println("Hello world!!!")
}
我的方法正确吗?或者我应该使用 channel 来确保一次只有一个进程登录到文件,还是由日志包本身处理?
日志包也负责缓冲还是直接写入文件?
相关分类