七叶笔记 » golang编程 » 粉丝答疑:Go Web 框架 Gin 将日志记录到文件

粉丝答疑:Go Web 框架 Gin 将日志记录到文件

在 文章中粉丝提问:

刚接触gin,请教下gin在记录日志的时候能不能把每天的日志记录到单独的文件,第二个问题我在用gorm的时候用了一个变量保存gorm. open的返回值,其他地方就直接使用的那个变量,结果经常在终端看到数据库连接被关闭了,这时接口请求会失败

第一个问题答疑如下:

默认情况 下,使用log.Println()输出到 控制台

如果需要记录到文件中,我们需要对 log.SetOutput() 进行重新设置。

 func SetOutput(w io.Writer)  

思路:

1、日志文件” running.log “,如果日志文件不存在,那就创建日志文件;如果日志文件存在,那就在增加日志记录

2、为了 实时 观察执行过程,日志信息也同步在控制台输出

项目设想:访问 ,控制台和日志文件都记录访问者的 header 信息

操作过程:

1、重置日志记录

MultiWriter创建一个Writer,os.Stdout为默认控制台输出,File为打开的日志文件,将os.Stdout和File作为MultiWriter的参数。

log.SetOutput()的目的是设置日志输出模式

2、获取客户端header

json.Marshal(c.Request.Header),将客户端header信息进行json编码

c.Writer.Write(bytes),将json信息输出到页面

3、完整源码如下

完整源码

相关文章