## 项目介绍
[Gin 日志记录](https://github.com/xinliangnote/Go/blob/master/01-Gin框架/03-日志记录.md)
## 修改日志
2019-07-30 优化了 logger.go,日志新增了返回数据,见[最新代码包](https://github.com/xinliangnote/Go/tree/master/01-Gin框架/codes/05-自定义错误处理)。
## 配置
```
// 日志记录到文件
func LoggerToFile() gin.HandlerFunc {
logFilePath := config.Log_FILE_PATH
logFileName := config.LOG_FILE_NAME
//日志文件
fileName := path.Join(logFilePath, logFileName)
//写入文件
src, err := os.OpenFile(fileName, os.O_APPEND|os.O_WRONLY, os.ModeAppend)
if err != nil {
fmt.Println("err", err)
}
//实例化
logger := logrus.New()
//设置输出
logger.Out = src
//设置日志级别
logger.SetLevel(logrus.DebugLevel)
//设置日志格式
logger.SetFormatter(&logrus.TextFormatter{})
return func(c *gin.Context) {
// 开始时间
startTime := time.Now()
// 处理请求
c.Next()
// 结束时间
endTime := time.Now()
// 执行时间
latencyTime := endTime.Sub(startTime)
// 请求方式
reqMethod := c.Request.Method
// 请求路由
reqUri := c.Request.RequestURI
// 状态码
statusCode := c.Writer.Status()
// 请求IP
clientIP := c.ClientIP()
// 日志格式
logger.Infof("| %3d | %13v | %15s | %s | %s |",
statusCode,
latencyTime,
clientIP,
reqMethod,
reqUri,
)
}
}
```
## 运行
**下载源码后,请先执行 `dep ensure` 下载依赖包!**
## 效果图
```
time="2019-07-17T22:10:45+08:00" level=info msg="| 200 | 27.698µs | ::1 | GET | /v1/product/add?name=a&price=10 |"
time="2019-07-17T22:10:46+08:00" level=info msg="| 200 | 27.239µs | ::1 | GET | /v1/product/add?name=a&price=10 |"
```
```
time="2019-07-17 22:15:57" level=info msg="| 200 | 185.027µs | ::1 | GET | /v1/product/add?name=a&price=10 |"
time="2019-07-17 22:15:58" level=info msg="| 200 | 56.989µs | ::1 | GET | /v1/product/add?name=a&price=10 |"
```
```
{"level":"info","msg":"| 200 | 24.78µs | ::1 | GET | /v1/product/add?name=a\u0026price=10 |","time":"2019-07-17 22:23:55"}
{"level":"info","msg":"| 200 | 26.946µs | ::1 | GET | /v1/product/add?name=a\u0026price=10 |","time":"2019-07-17 22:23:56"}
```
```
{"client_ip":"::1","latency_time":26681,"level":"info","msg":"","req_method":"GET","req_uri":"/v1/product/add?name=a\u0026price=10","status_code":200,"time":"2019-07-17 22:37:54"}
{"client_ip":"::1","latency_time":24315,"level":"info","msg":"","req_method":"GET","req_uri":"/v1/product/add?name=a\u0026price=10","status_code":200,"time":"2019-07-17 22:37:55"}
```
没有合适的资源?快使用搜索试试~ 我知道了~
【Go从入门到实战】学习笔记,从零开始学Go、Gin框架,基本语法包括26个Demo,Gin框架包括:Gin自定义路由配置
共207个文件
go:76个
png:64个
md:43个
需积分: 5 0 下载量 34 浏览量
2024-05-16
12:02:55
上传
评论
收藏 4.42MB ZIP 举报
温馨提示
Go 从入门到实战学习笔记 1. 学习路径 基础阶段 1. Go 语言基础 - 学习基本语法,包括变量、数据类型、运算符、控制结构(if、else、switch、for 等)、函数和数组。 - 资源推荐: - [Go 官方文档](https://golang.org/doc/) - [Tour of Go](https://tour.golang.org/) 2. **Go 的高级特性** - 学习面向对象编程(OOP)概念,包括结构体和接口。 - 理解并发编程,掌握 goroutine 和 channel 的使用。 - 学习错误处理和日志记录。 实战阶段 1. 26 个基础 Demo - 每个 Demo 涵盖一个或多个 Go 语言的基本概念和特性。 - 通过实践例子巩固基础知识,例如 Hello World、计算器、文件操作、简单的 HTTP 服务器等。 - 推荐项目:创建一个个人笔记应用,逐步增加功能以实践学到的知识。
资源推荐
资源详情
资源评论
收起资源包目录
【Go从入门到实战】学习笔记,从零开始学Go、Gin框架,基本语法包括26个Demo,Gin框架包括:Gin自定义路由配置 (207个子文件)
7_api_2.gif 197KB
2_grpc_1.gif 111KB
2_grpc_2.gif 78KB
.gitignore 5B
hello.pb.go 9KB
hello.pb.go 9KB
logger.go 3KB
logger.go 2KB
logger.go 2KB
alarm.go 2KB
common.go 2KB
common.go 2KB
sign.go 2KB
sign.go 2KB
demo_26.go 1KB
common.go 904B
main.go 886B
common.go 824B
router.go 813B
router.go 808B
router.go 805B
demo_15.go 779B
router.go 759B
demo_7.go 670B
product.go 649B
demo_4.go 639B
result.go 599B
result.go 599B
demo_20.go 589B
demo_18.go 581B
demo_19.go 580B
hello_server.go 571B
main.go 535B
demo_12.go 530B
demo_8.go 528B
member.go 528B
member.go 528B
demo_14.go 521B
demo_10.go 512B
demo_13.go 497B
demo_9.go 477B
demo_25.go 435B
demo_24.go 408B
demo_11.go 405B
member.go 376B
member.go 376B
demo_2.go 356B
main.go 339B
main.go 336B
main.go 336B
demo_16.go 286B
demo_17.go 286B
demo_3.go 281B
main.go 278B
recover.go 268B
demo_1.go 267B
product.go 265B
product.go 260B
product.go 260B
product.go 260B
product.go 260B
member.go 258B
member.go 256B
product.go 255B
product.go 255B
member.go 205B
member.go 205B
config.go 204B
config.go 204B
config.go 204B
demo_23.go 194B
demo_6.go 176B
demo_5.go 160B
demo_22.go 143B
demo_21.go 140B
member.go 129B
member.go 128B
member.go 128B
member.go 128B
config.go 126B
5_api_4.jpeg 40KB
10_go_1.jpeg 33KB
11_go_1.jpeg 28KB
11_go_2.jpeg 20KB
4_api_5.jpeg 15KB
11_go_3.jpeg 14KB
5_api_5.jpeg 8KB
5_api_10.jpeg 6KB
5_api_9.jpg 60KB
qr.jpg 9KB
Gopkg.lock 5KB
Gopkg.lock 5KB
Gopkg.lock 5KB
Gopkg.lock 4KB
07-[go-gin-api] 路由中间件 - 签名验证.md 17KB
05-自定义错误处理.md 12KB
03-日志记录.md 9KB
06-[go-gin-api] 路由中间件 - 链路追踪(Jaeger)实战.md 7KB
03-[go-gin-api] 路由中间件 - 日志记录.md 7KB
05-[go-gin-api] 路由中间件 - 链路追踪(Jaeger).md 7KB
共 207 条
- 1
- 2
- 3
资源评论
编程资源宝库
- 粉丝: 2953
- 资源: 155
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Libraries-Comm-Controller
- 豆瓣电影爬虫 爬取top电影的评论 + 每个用户的看过的电影的评论 用于推荐系统的 协同过滤+源代码+文档说明
- 交互设计课程竞品分析内容案例设计
- c07c4b30caf2ab290c3f2eea8339b34b.mp4
- emqx服务器搭建文件
- Libraries-Comm-Controller-DOC-V2-0-1-en.pdf
- update9-20240601.5.205.slice.img.7z.003
- 9f9ae03ea06c5c991afa26c5813d8831.amr
- 计算机等级考试Python二级真题.zip
- 爱普生L301清零程序
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功