Fiberzap
Fiber를 위한 Zap 로깅 지원.
참고: Go 1.19 이상 버전이 필요합니다
Installation
이 미들웨어는 Fiber v2를 지원합니다.
go get -u github.com/gofiber/fiber/v2
go get -u github.com/gofiber/contrib/fiberzap/v2
go get -u go.uber.org/zap
Signatures
fiberzap.New(config ...fiberzap.Config) fiber.Handler
Config
Next
func(*Ctx) bool
true를 반환할 때 이 미들웨어를 건너뛰는 함수 정의
nil
Logger
*zap.Logger
사용자 지정 zap 로거를 추가합니다.
zap.NewDevelopment()
Fields
[]string
보고 싶은 필드를 추가합니다.
[]string{"latency", "status", "method", "url"}
FieldsFunc
[]zap.Field
사용자 지정 필드를 추가하는 함수를 정의합니다.
nil
Messages
[]string
사용자 지정 응답 메시지.
[]string{"Server error", "Client error", "Success"}
Levels
[]zapcore.Level
사용자 지정 응답 레벨.
[]zapcore.Level{zapcore.ErrorLevel, zapcore.WarnLevel, zapcore.InfoLevel}
SkipURIs
[]string
이 URI에 대한 로깅을 건너뜁니다.
[]string{}
GetResBody
func(*Ctx) []byte
nil이 아닌 값이 반환될 때 응답 본문을 가져오는 함수를 정의합니다. 예: 압축 미들웨어를 사용할 때 resBody가 읽을 수 없게 됩니다. GetResBody 함수를 설정하여 읽을 수 있는 resBody를 얻을 수 있습니다.
nil
Examples
package main
import (
"log"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/contrib/fiberzap/v2"
"go.uber.org/zap"
)
func main() {
app := fiber.New()
logger, _ := zap.NewProduction()
app.Use(fiberzap.New(fiberzap.Config{
Logger: logger,
}))
app.Get("/", func (c *fiber.Ctx) error {
return c.SendString("Hello, World!")
})
log.Fatal(app.Listen(":3000"))
}
NewLogger
Signatures
fiberzap.NewLogger(config ...fiberzap.LoggerConfig) *fiberzap.LoggerConfig
LoggerConfig
CoreConfigs
[]CoreConfig
zapcore에 대한 Config를 정의합니다.
fiberzap.LoggerConfigDefault
SetLogger
*zap.Logger
사용자 지정 zap 로거를 추가합니다. nil이 아니면 ZapOptions
, CoreConfigs
, SetLevel
, SetOutput
은 무시됩니다.
nil
ExtraKeys
[]string
사용자가 컨텍스트에서 추가 값을 로깅할 수 있도록 허용합니다.
[]string{}
ZapOptions
[]zap.Option
zap에서 제공하는 zap.Option을 사용자가 구성할 수 있도록 허용합니다.
[]zap.Option{}
Examples
package main
import (
"context"
"github.com/gofiber/contrib/fiberzap/v2"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/log"
)
func main() {
app := fiber.New()
log.SetLogger(fiberzap.NewLogger(fiberzap.LoggerConfig{
ExtraKeys: []string{"request_id"},
}))
app.Use(func(c *fiber.Ctx) error {
ctx := context.WithValue(c.UserContext(), "request_id", "123")
c.SetUserContext(ctx)
return c.Next()
})
app.Get("/", func(c *fiber.Ctx) error {
log.WithContext(c.UserContext()).Info("Hello, World!")
return c.SendString("Hello, World!")
})
log.Fatal(app.Listen(":3000"))
}
Last updated