wip
This commit is contained in:
32
example/simple/logger.go
Normal file
32
example/simple/logger.go
Normal file
@@ -0,0 +1,32 @@
|
||||
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()
|
||||
}
|
||||
}
|
@@ -20,6 +20,7 @@ func main() {
|
||||
})
|
||||
|
||||
v1 := app.Group("/v1")
|
||||
v1.Use(NewRecovery())
|
||||
v1.Get("/hello", func(c *nf.Ctx) error {
|
||||
return c.JSON(nf.Map{"version": "v1", "date": time.Now()})
|
||||
})
|
||||
@@ -27,11 +28,21 @@ func main() {
|
||||
v1.Get(
|
||||
"/name",
|
||||
func(c *nf.Ctx) error {
|
||||
c.Params["name"] = "zyp"
|
||||
c.Locals("name", "zyp")
|
||||
panic("name")
|
||||
return c.Next()
|
||||
},
|
||||
func(c *nf.Ctx) error {
|
||||
return c.SendString(fmt.Sprintf("hi, %s", c.Params["name"]))
|
||||
return c.SendString(fmt.Sprintf("hi, %s", c.Locals("name1")))
|
||||
},
|
||||
)
|
||||
|
||||
v2 := v1.Group("/v2")
|
||||
v2.Use(Logger())
|
||||
v2.Get(
|
||||
"/name",
|
||||
func(c *nf.Ctx) error {
|
||||
return c.SendString("hi, loveuer")
|
||||
},
|
||||
)
|
||||
|
||||
|
Reference in New Issue
Block a user