英文:
Go: new line in file error logging
问题
我对Go语言相对较新,想要将错误日志记录到一个文本文件中。目前我使用的代码是:
// 日志记录
f, err := os.OpenFile("pgdump_errorlog.txt", os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
if err != nil {
log.Fatalf("打开文件时发生错误: %v", err)
}
defer f.Close()
log.SetOutput(f)
//... (稍后的代码)
if err != nil {
log.Fatal(err)
}
这段代码运行得还可以,只是错误信息没有换行,而是直接追加到第一行的末尾。有没有办法在追加之前让错误信息换行呢?我尝试过:
if err != nil {
log.Fatalf("\n 错误: %v", err)
}
但是这样根本没有记录日志。我猜想可能需要在某个地方加上"\n",但是我无法弄清楚具体在哪里。
谢谢!
英文:
I am relatively new to go and looking to log out errors to a text file. At the moment I use:
// Logging
f, err := os.OpenFile("pgdump_errorlog.txt", os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
if err != nil {
log.Fatalf("error opening file: %v", err)
}
defer f.Close()
log.SetOutput(f)
//... (later on)
if err != nil {
log.Fatal(err)
}
Which works OK, minus the fact that the errors do not produce a new line and just append to the end of the first line. Is there a way to make the error output create a new line before appending? I've tried:
if err != nil {
log.Fatalf("\n Error: %v", err)
}
But this didn't log at all. Assuming there needs to be a "\n" somewhere but I am struggling to figure it out.
Thanks
答案1
得分: 2
这是使用回车和换行符在 Fatal 调用之前使用 Print 的情况:
log.Print("\r\n")
//或者 log.Print(err.Error() + "\r\n")
英文:
It was a case of using Print with carriage return and line feed before the Fatal call:
log.Print("\r\n")
//or log.Print(err.Error() + "\r\n")
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论