我有数百个使用log.Println()写入日志文件的子例程
我正在使用log.Println写入error.log文件。
Golang:是否使用log.Println登录到文件中并发访问
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!!!")
}
我的方法是否正确?还是应该使用通道来确保一次只有一个进程正在登录文件,还是需要通过日志包来处理?
此外,日志包是否负责缓冲或直接写入文件?
喔我读顶部的描述,我没有读到记录仪,是我不好 –
我搜索“同时”,因为大多数的包似乎关于安全使用的“并发够程”发表评论。我错过了这个,因为我并不期望“同时”成为搜索词。 – carbocation