1
0
mirror of https://github.com/gofiber/fiber.git synced 2025-02-24 03:23:56 +00:00
fiber/middleware/logger.md
2020-06-08 03:52:09 +02:00

1.7 KiB

Logger

HTTP request/response logger for Fiber

Example

package main

import (
  "github.com/gofiber/fiber"
  "github.com/gofiber/fiber/middleware"
)

func main() {
  app := fiber.New()

  // Default
  app.Use(middleware.Logger())

  // Custom logging format
  app.Use(middleware.Logger("${method} - ${path}"))

  // Custom Config
  app.Use(middleware.LoggerWithConfig(middleware.LoggerConfig{
    Next: func(ctx *fiber.Ctx) bool {
      return ctx.Path() != "/private"
    },
    Format: "${method} - ${path}",
    Output: io.Writer,
  }))

  app.Listen(3000)
}

Signatures

func Logger(format ...string) fiber.Handler {}
func LoggerWithConfig(config LoggerConfig) fiber.Handler {}

Config

type LoggerConfig struct {
  // Next defines a function to skip this middleware.
  Next func(ctx *fiber.Ctx) bool

  // Format defines the logging tags
  //
  // - time
  // - ip
  // - ips
  // - url
  // - host
  // - method
  // - path
  // - protocol
  // - route
  // - referer
  // - ua
  // - latency
  // - status
  // - body
  // - error
  // - bytesSent
  // - bytesReceived
  // - header:<key>
  // - query:<key>
  // - form:<key>
  // - cookie:<key>
  //
  // Optional. Default: ${time} ${method} ${path} - ${ip} - ${status} - ${latency}\n
  Format string

  // TimeFormat https://programming.guide/go/format-parse-string-time-date-example.html
  //
  // Optional. Default: 15:04:05
  TimeFormat string

  // Output is a writter where logs are written
  //
  // Default: os.Stderr
  Output io.Writer
}

Default Config

var LoggerConfigDefault = LoggerConfig{
	Next:       nil,
	Format:     "${time} ${method} ${path} - ${ip} - ${status} - ${latency}\n",
	TimeFormat: "15:04:05",
	Output:     os.Stderr,
}