0
我有一些非常簡單的代碼,我將一些錯誤信息記錄到文件中。爲什麼本機Golang記錄器在全局變量時不記錄?
package main
import (
"log"
"os"
)
var testLogger *log.Logger
func init() {
logFile, openErr1 := os.OpenFile("/home/doug/logs/test.log", os.O_CREATE|os.O_RDWR|os.O_APPEND, 0666)
if openErr1 != nil {
log.Println("Uh oh! Could not open log file.")
}
defer logFile.Close()
testLogger = log.New(logFile, "PREFIX", log.Lshortfile|log.Ldate|log.Ltime)
}
func main() {
testLogger.Println("meep meep")
}
但是,無論何時在運行程序後打開文件,它總是空的。我究竟做錯了什麼?
是不是'defer logFile.Close()'運行在init函數的結尾?這是否意味着你正在關閉記錄器下的文件? –
@ChrisTavares GAH。所以我應該在'main()'中運行它呢? –
@DougSmith把延期放在主位置,剩下的都不起作用;將所有的日誌配置移動到主要作品的頂部......例如這裏所建議的https://stackoverflow.com/questions/32619318/logging-to-a-file-in-golang – Snowman