nf/example/simple/logger.go

33 lines
510 B
Go
Raw Normal View History

2024-01-11 22:29:30 +08:00
package main
import (
"log"
"nf"
"time"
)
func Logger() nf.HandlerFunc {
return func(c *nf.Ctx) error {
// Start timer
t := time.Now()
// Process request
err := c.Next()
// Calculate resolution time
log.Printf("[%d] %s in %v", c.StatusCode, c.Request.RequestURI, time.Since(t))
return err
}
}
func NewRecovery() nf.HandlerFunc {
return func(c *nf.Ctx) error {
defer func() {
if err := recover(); err != nil {
log.Printf("[recovery] %v", err)
}
}()
return c.Next()
}
}