package middleware import ( "log" "time" "github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2/middleware/logger" ) // SetupLogger configures request logging middleware func SetupLogger() fiber.Handler { return logger.New(logger.Config{ Format: "${time} ${status} - ${latency} ${method} ${path} ${ip}\n", TimeFormat: "2006-01-02 15:04:05", TimeZone: "Local", Output: nil, // Use default (stdout) }) } // CustomLogger is a more detailed logger with structured output func CustomLogger() fiber.Handler { return func(c *fiber.Ctx) error { start := time.Now() // Process request err := c.Next() // Calculate latency latency := time.Since(start) // Log request details log.Printf("[%s] %s %s | Status: %d | Latency: %v | IP: %s", time.Now().Format("2006-01-02 15:04:05"), c.Method(), c.Path(), c.Response().StatusCode(), latency, c.IP(), ) return err } }