Golang中的记录器功能失败

时间:2018-07-21 16:10:36

标签: go

我有一个应该非常简单的记录器功能,但是在创建日志文件时,没有任何写入。我尝试了几种不同的方法,但是仍然失败。功能是

func logger(logname string, message string) {
    logName := "../planner/log/" + logname + ".log"
    var file *os.File

    file, err := os.OpenFile(logName, os.O_APPEND|os.O_CREATE, 0755)
    if err != nil {
        fmt.Println("File", logName, "failed with error:", err)
    }

    //file.WriteString(message)
    fmt.Fprintf(file, message)
    fmt.Println("Wrote", message, "to", logName)
    file.Sync()
    file.Close()

    test, err := os.Stat(logName)
    size := test.Size()
    fmt.Println("File size is", size)
}

1 个答案:

答案 0 :(得分:0)

由于没有使用os.WRONLYos.RDWR打开文件,因此文件中没有任何内容。默认情况下。 os.OpenFile返回仅具有读取权限的缓冲区。您可能想用defer关闭文件,以防代码因defer file.Close()崩溃。