Logger
Logger middleware for Fiber that logs HTTP request/response details.
Table of Contents
Signatures
func New(config ...Config) fiber.Handler
Examples
First ensure the appropriate packages are imported
import ("github.com/gofiber/fiber/v2""github.com/gofiber/fiber/v2/middleware/logger")
Initialization / Default Config
// Default middleware configapp.Use(logger.New())
Logging Request ID
app.Use(requestid.New())app.Use(logger.New(logger.Config{// For more options, see the Config sectionFormat: "${pid} ${locals:requestid} ${status} - ${method} ${path}\n",}))
Changing TimeZone & TimeFormat
app.Use(logger.New(logger.Config{Format: "${pid} ${status} - ${method} ${path}\n",TimeFormat: "02-Jan-2006",TimeZone: "America/New_York",}))
Custom File Writer
file, err := os.OpenFile("./123.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)if err != nil {log.Fatalf("error opening file: %v", err)}defer file.Close()app.Use(logger.New(logger.Config{Output: file,}))
Config
// Config defines the config for middleware.type Config struct {// Next defines a function to skip this middleware when returned true.//// Optional. Default: nilNext func(c *fiber.Ctx) bool// Format defines the logging tags//// Optional. Default: [${time}] ${status} - ${latency} ${method} ${path}\nFormat string// TimeFormat https://programming.guide/go/format-parse-string-time-date-example.html//// Optional. Default: 15:04:05TimeFormat string// TimeZone can be specified, such as "UTC" and "America/New_York" and "Asia/Chongqing", etc//// Optional. Default: "Local"TimeZone string// TimeInterval is the delay before the timestamp is updated//// Optional. Default: 500 * time.MillisecondTimeInterval time.Duration// Output is a writter where logs are written//// Default: os.StderrOutput io.Writer}
Default Config
var ConfigDefault = Config{Next: nil,Format: "[${time}] ${status} - ${latency} ${method} ${path}\n",TimeFormat: "15:04:05",TimeZone: "Local",TimeInterval: 500 * time.Millisecond,Output: os.Stderr,}
Constants
// Logger variablesconst (TagPid = "pid"TagTime = "time"TagReferer = "referer"TagProtocol = "protocol"TagIP = "ip"TagIPs = "ips"TagHost = "host"TagMethod = "method"TagPath = "path"TagURL = "url"TagUA = "ua"TagLatency = "latency"TagStatus = "status" // response statusTagResBody = "resBody" // response bodyTagQueryStringParams = "queryParams" // request query parametersTagBody = "body" // request bodyTagBytesSent = "bytesSent"TagBytesReceived = "bytesReceived"TagRoute = "route"TagError = "error"TagHeader = "header:" // request headerTagQuery = "query:" // request queryTagForm = "form:" // request formTagCookie = "cookie:" // request cookieTagLocals = "locals:"// colorsTagBlack = "black"TagRed = "red"TagGreen = "green"TagYellow = "yellow"TagBlue = "blue"TagMagenta = "magenta"TagCyan = "cyan"TagWhite = "white"TagReset = "reset")