package api import ( "log" "time" "asset-tracker/internal/metrics" "github.com/gin-gonic/gin" ) func AccessLog() gin.HandlerFunc { return func(c *gin.Context) { start := time.Now() c.Next() latency := time.Since(start) metrics.ObserveHTTP(c, start) log.Printf("[http] request_id=%s method=%s path=%s status=%d latency=%s ip=%s", requestID(c), c.Request.Method, c.Request.URL.Path, c.Writer.Status(), latency.String(), c.ClientIP()) } }