ft/adds logger to api.server
This commit is contained in:
parent
933347095a
commit
83a9648b7a
36
api/logger.go
Normal file
36
api/logger.go
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
package api
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"log/slog"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Logger(logger *slog.Logger) gin.HandlerFunc {
|
||||||
|
return func(c *gin.Context) {
|
||||||
|
t := time.Now()
|
||||||
|
|
||||||
|
// var buf bytes.Buffer
|
||||||
|
// tee := io.TeeReader(c.Request.Body, &buf)
|
||||||
|
// body, _ := io.ReadAll(tee)
|
||||||
|
// c.Request.Body = io.NopCloser(&buf)
|
||||||
|
c.Next()
|
||||||
|
duration := time.Since(t).Milliseconds()
|
||||||
|
|
||||||
|
log := []slog.Attr{
|
||||||
|
slog.String("METHOD", c.Request.Method),
|
||||||
|
slog.String("PATH", c.Request.RequestURI),
|
||||||
|
slog.String("DURATION", fmt.Sprintf("%d ms", duration)),
|
||||||
|
// slog.String("BODY", string(body)),
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.LogAttrs(
|
||||||
|
c,
|
||||||
|
slog.LevelDebug,
|
||||||
|
"http",
|
||||||
|
log...,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,9 @@
|
|||||||
package api
|
package api
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"log/slog"
|
||||||
|
"os"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
db "github.com/itsscb/df/db/sqlc"
|
db "github.com/itsscb/df/db/sqlc"
|
||||||
)
|
)
|
||||||
@ -17,7 +20,15 @@ func NewServer(store db.Store) *Server {
|
|||||||
store: store,
|
store: store,
|
||||||
}
|
}
|
||||||
|
|
||||||
router := gin.Default()
|
opts := slog.HandlerOptions{
|
||||||
|
Level: slog.LevelDebug,
|
||||||
|
}
|
||||||
|
logger := slog.New(slog.NewJSONHandler(os.Stdout, &opts))
|
||||||
|
router := gin.New()
|
||||||
|
|
||||||
|
router.Use(gin.Recovery())
|
||||||
|
|
||||||
|
router.Use(Logger(logger))
|
||||||
|
|
||||||
router.POST("/accounts", server.createAccount)
|
router.POST("/accounts", server.createAccount)
|
||||||
router.GET("/accounts/:id", server.getAccount)
|
router.GET("/accounts/:id", server.getAccount)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user