我有數百個使用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