我正在Mac上开发一个Go程序,该电脑安装了Parallels和Windows系统,以便我可以在两个平台上进行测试。我的程序运行良好。我可以在Mac上编译Windows的".exe"文件,并在Windows上运行它,除了日志文件外都正常工作。
我已将记录器设置为将其输出写入文件,如下所示:
log.SetOutput(projectsLog)
在上面声明的项目projectsLog中,如下所示:
projectsLog *os.File
我正在使用log.Printf语句,因为我需要格式化输出。以下是一个示例:
log.Printf("Error: wrong Hra Class value %s in row %v for project/path %s", hraClass, (rowNum + 1), testDir)
在Mac上运行良好。每行使用log.Printf记录在单独的行上,但在Windows上,换行符不会显示,我会得到一行没有换行符的日志。我很清楚Unix和Windows之间的"\r"和"\r\n"的区别。但我认为log.Printf会根据它所运行的平台适当地表现?如果我的假设是错误的,那么我有哪些选项可以确保日志文件在Windows上可读?如果可以的话,我不想传递标志,比如-platform windows或类似的东西。这可以以透明的方式处理吗?
log
和fmt
包不会根据平台更改行尾(顺便说一下,\r
只在旧的Mac和其他已经消失的系统上使用)。最好使用能够读取没有回车符的文件的文本编辑器。 - JimB