23 lines
452 B
Go
23 lines
452 B
Go
package middleware
|
|
|
|
import (
|
|
"fmt"
|
|
"log/slog"
|
|
"slgserver/net"
|
|
"time"
|
|
)
|
|
|
|
func ElapsedTime() net.MiddlewareFunc {
|
|
return func(next net.HandlerFunc) net.HandlerFunc {
|
|
return func(req *net.WsMsgReq, rsp *net.WsMsgRsp) {
|
|
bt := time.Now().UnixNano()
|
|
next(req, rsp)
|
|
et := time.Now().UnixNano()
|
|
diff := (et - bt)/int64(time.Millisecond)
|
|
|
|
slog.Info("ElapsedTime:",
|
|
"msgName", req.Body.Name,
|
|
"cost", fmt.Sprintf("%dms", diff))
|
|
}
|
|
}
|
|
} |