zap在gin中的初始化配置
时间: 2024-04-29 14:24:13 浏览: 158
golang基于zap日志库封装.rar
在gin中使用zap需要先进行初始化配置,以下是示例代码:
```go
import (
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
func main() {
// 初始化zap配置
cfg := zap.Config{
Encoding: "json",
Level: zap.NewAtomicLevelAt(zapcore.InfoLevel),
OutputPaths: []string{"stdout"},
ErrorOutputPaths: []string{"stderr"},
EncoderConfig: zapcore.EncoderConfig{
MessageKey: "msg",
LevelKey: "level",
TimeKey: "time",
CallerKey: "caller",
EncodeLevel: zapcore.CapitalLevelEncoder,
EncodeTime: zapcore.ISO8601TimeEncoder,
EncodeCaller: zapcore.ShortCallerEncoder,
},
}
logger, err := cfg.Build()
if err != nil {
panic(err)
}
// 将zap的logger替换为gin的logger
gin.SetLogger(logger.Sugar())
// 后续代码中可以使用gin的logger输出日志
router := gin.Default()
router.GET("/", func(c *gin.Context) {
c.Logger().Info("hello world")
c.String(http.StatusOK, "Hello World")
})
router.Run()
}
```
上述代码中,我们使用`zap.Config`进行zap的初始化配置,将zap的logger替换为gin的logger,并在后续代码中使用`c.Logger()`输出日志。注意,我们在`msg`字段中输出了日志信息,而不是默认的`message`,这是为了和gin的日志格式保持一致。
阅读全文