文件夹 bin
下的可执行文件 tapi
无法创建日志文件(在我的 Mac 中),顺便说一句。我已经创建了文件夹 logs
panic: open logs/1435584525.txt: no such file or directory
它在命令行 tapi
下正确运行
我使用的代码是:
t := time.Now()
filename := "logs/" + strconv.FormatInt(t.Unix(),10) + ".txt"
logFile, err := os.OpenFile(filename, os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
if err != nil {
panic(err)
}
defer logFile.Close()
log.SetOutput(logFile)
文件结构是:
垃圾箱/塔皮
包装
src/用户名/tapi/tapi.go
最佳答案
问题出在“logs/”,这是一个相对路径。如果您使用绝对路径(例如创建并使用“/logs/”),那么这将解决问题。
我刚刚成功安装并运行了它(在创建/logs/和设置权限之后):
package main
import (
"log"
"os"
"time"
"strconv"
)
func main() {
t := time.Now()
filename := "/logs/" + strconv.FormatInt(t.Unix(), 10) + ".txt"
logFile, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
panic(err)
}
defer logFile.Close()
log.SetOutput(logFile)
}
如果您保留相对路径,则在目录结构中添加:“/src/tapi/logs”即可。
在那种情况下,这对我来说运行良好:
package main
import (
"log"
"os"
"time"
"strconv"
)
func main() {
t := time.Now()
filename := "logs/" + strconv.FormatInt(t.Unix(), 10) + ".txt"
logFile, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
panic(err)
}
defer logFile.Close()
log.SetOutput(logFile)
}
关于go - 使用文件 i/o 运行 go 可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31117078/