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