前言
Gin 框架的日志默认是在控制台输出,本篇将使用 Gin 提供的 RecoveryWithWriter()
方法,封装一个中间件,使用 lumberjack
作为的写入器,将错误日志写入文件中;同时使用 github.com/gin-contrib/cors
,作下跨域处理。
安装
1 | shell复制代码go get -u gopkg.in/natefinch/lumberjack.v2 |
Recovery 中间件
在 app/common/response/response.go
文件中,添加 ServerError()
方法,作为 RecoveryFunc
1 | go复制代码package response |
新建 app/middleware/recovery.go
文件,编写:
1 | go复制代码package middleware |
CORS 跨域处理
新建 app/middleware/cors.go
文件,编写:
1 | go复制代码package middleware |
使用中间件
在 bootstrap/router.go
文件,编写:
1 | go复制代码func setupRouter() *gin.Engine { |
测试
为了演示,这里我故意将数据库配置写错,请求登录接口,中间件成功生效
接着查看 storage/logs/app.log
文件,错误信息成功写入到文件,内容如下:
1 | bash复制代码[31m2021/11/21 20:40:18 [Recovery] 2021/11/21 - 20:40:18 panic recovered: |
本文转载自: 掘金