Logging 正在使用Golang包日志将行追加到文件,而不是获取新行。

Logging 正在使用Golang包日志将行追加到文件,而不是获取新行。,logging,go,io,Logging,Go,Io,我使用的是golang包“log”,当我使用log写入文本文件时,它不会在末尾追加一行新的文本。它把所有的东西放在一起 当前代码 f, err := os.OpenFile("D:\\temp2\\testlogfile.txt", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) if err != nil { Error.Fatalf("error opening file: %v", err) } defer f.Close() multi :=

我使用的是golang包“log”,当我使用log写入文本文件时,它不会在末尾追加一行新的文本。它把所有的东西放在一起

当前代码

f, err := os.OpenFile("D:\\temp2\\testlogfile.txt", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
    Error.Fatalf("error opening file: %v", err)
}
defer f.Close()
multi := io.MultiWriter(os.Stdout, f)
log.SetOutput(multi)
log.Println("testy1")
log.Println("testy2")

有人有什么想法吗

如评论中所述,您的编辑器不理解unix样式的新行
考虑使用记事本++< /P>

我使用\r作为回车符。它适用于我们内部使用的所有编辑器

问题是您正在用记事本打开文件。@Tim Cooper您是对的。谢谢你提供的信息。如果可能的话,你知道一种使它独立于编辑器的方法吗?@Oyang可以使用任何知道如何呈现
\n
的编辑器。在字符串末尾添加
\r
也可以。@IgorDubinskiy打破了可移植性…或者像Atom、Sublime Text这样的跨平台编辑器,或者VisualStudio代码。这通常是一个非常糟糕的想法,因为它不是跨平台的。Windows需要\r\n而unix需要\r\n\因此,r在*nix平台上不起作用。你可能现在就在windows上开发,但不要期望在你的余生中都这样做。尽早养成健康的习惯是个好主意。除了基于windows的文本编辑器之外,您不需要任何地方。您执行的任何代码都应该查找\n,并且您编写的任何代码都应该插入\n,因此,即使您在windows上,这些代码也将正确执行并具有跨平台兼容性。