Go语言创建日志文件并写入信息本质上也是Go语言写文件操作。文件读写不论在哪种编程语言中都是一个重要特性。Go 提供 os 包来创建/读取/写入文件。您可以使用 golang os 包从文件中读取数据或将内容写入文件。
接下来的 Go 代码使用 os 模块将日志写入文件,您可以用过写入功能进行日志记录、保存数据、将数据存储在文件中等。
首先导入需要用到的包
import (
"github.com/labstack/echo"
"log"
"net/http"
"os"
)
然后创建一个结构体来将消息记录到文件中
type Response struct {
Status int `json:"status"`
Meta string `json:"_meta"`
Resource interface{} `json:"resource"`
}
type Reso struct {
Output string `json:"output_data"`
}
当其余端点调用时,我们将打开日志文件并将数据写入此文件,您也可以在没有任何其余调用的情况下写入日志。
f, _ := os.OpenFile("testlogfile.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
我们将以读写模式打开testlogfile.log
文件,如果文件不存在,那么新建改文件。每次写入数据时,我们都会将数据附加到testlogfile.log
文件中。
defer f.Close()
log.SetOutput(f)
一旦函数完成数据写入,那么使用方法defer
关闭文件访问。
我们将记录关于 RESTful 服务调用的 HTTP 详细信息和消息,我正在使用 ECHO 创建一个 REST 调用以进行演示。
e := echo.New()
e.GET("/testlog", func(c echo.Context) error {
log.Println("get called")
response := Response{}
resource := Reso{}
resource.Output = "output_data test"
response.Status = http.StatusOK
response.Meta = "Just for fun"
response.Resource = resource
return c.JSON(http.StatusOK, &response)
})
我们将数据设置到资源和响应结构实例变量中并写入文件,因此每当您使用浏览器调用http://localhost:1323/testlog
时,日志消息都会记录到testlogfile.log
文件中。