forked from go-admin-team/go-admin-core
/
request_logger.go
41 lines (35 loc) · 1005 Bytes
/
request_logger.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package api
import (
"strings"
"github.com/gin-gonic/gin"
"github.com/goodbigtree/go-admin-core/logger"
"github.com/goodbigtree/go-admin-core/sdk"
"github.com/goodbigtree/go-admin-core/sdk/pkg"
)
type loggerKey struct{}
// GetRequestLogger 获取上下文提供的日志
func GetRequestLogger(c *gin.Context) *logger.Helper {
var log *logger.Helper
l, ok := c.Get(pkg.LoggerKey)
if ok {
ok = false
log, ok = l.(*logger.Helper)
if ok {
return log
}
}
//如果没有在上下文中放入logger
requestId := pkg.GenerateMsgIDFromContext(c)
log = logger.NewHelper(sdk.Runtime.GetLogger()).WithFields(map[string]interface{}{
strings.ToLower(pkg.TrafficKey): requestId,
})
return log
}
// SetRequestLogger 设置logger中间件
func SetRequestLogger(c *gin.Context) {
requestId := pkg.GenerateMsgIDFromContext(c)
log := logger.NewHelper(sdk.Runtime.GetLogger()).WithFields(map[string]interface{}{
strings.ToLower(pkg.TrafficKey): requestId,
})
c.Set(pkg.LoggerKey, log)
}