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文件中。

(adsbygoogle = window.adsbygoogle || []).push({});