Я не могу заставить свою программу записать в файл журнала функцию вне функции main ()
Я видел https://stackoverflow.com/a/19966217/4374801, который похож, но не решает мою точную проблему.
Вот важные моменты того, что я делаю:
var (
Info *log.Logger
Error *log.Logger
)
func init() {
// set up log file
fileHandle, err := os.OpenFile("/var/log/checkcert", os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644)
if err != nil {
log.Fatal(err)
}
//defer to close when you're done with it
defer fileHandle.Close()
//set output of logs to fileHandle
log.SetOutput(fileHandle)
Info = log.New(fileHandle,
"Log: ",
log.Ldate|log.Ltime|log.Lshortfile)
Error = log.New(fileHandle,
"Error: ",
log.Ldate|log.Ltime|log.Lshortfile)
}
// The function below is called from main()
// The version here is truncated to the pertinent bit
func checkDomain(){
Info.Println("test inside checkDomain")
}
Приведенное выше создает файл журнала, но не записывает в него тест.
Если я положу тест Println в init (), это работает.