From a19e759ec94ef99be7e8807c3684a68d2e5aefd6 Mon Sep 17 00:00:00 2001 From: shaoying Date: Tue, 13 Aug 2019 16:04:08 +0800 Subject: [PATCH] add web.time.cost --- src/contexts/cli/version.go | 2 +- src/contexts/ctx/type.go | 9 +++++++-- src/contexts/web/web.go | 4 ++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/contexts/cli/version.go b/src/contexts/cli/version.go index 27ba63ec..a3e4b479 100644 --- a/src/contexts/cli/version.go +++ b/src/contexts/cli/version.go @@ -4,5 +4,5 @@ var version = struct { host string self int }{ - "2019-08-06 21:00:10", "ZYB-20190522USI", 379, + "2019-08-13 16:01:31", "ZYB-20190522USI", 382, } diff --git a/src/contexts/ctx/type.go b/src/contexts/ctx/type.go index a74dcd50..2ccbe1ca 100644 --- a/src/contexts/ctx/type.go +++ b/src/contexts/ctx/type.go @@ -90,8 +90,13 @@ type DEBUG interface { func (m *Message) Time(arg ...interface{}) string { t := m.time if len(arg) > 0 { - if d, e := time.ParseDuration(arg[0].(string)); e == nil { - arg, t = arg[1:], t.Add(d) + switch v := arg[0].(type) { + case time.Time: + return fmt.Sprintf("%v", v.Sub(t)) + default: + if d, e := time.ParseDuration(arg[0].(string)); e == nil { + arg, t = arg[1:], t.Add(d) + } } } diff --git a/src/contexts/web/web.go b/src/contexts/web/web.go index eb312de6..06d658ed 100644 --- a/src/contexts/web/web.go +++ b/src/contexts/web/web.go @@ -21,6 +21,7 @@ import ( "path/filepath" "strconv" "strings" + "time" ) type MUX interface { @@ -158,6 +159,9 @@ func (web *WEB) Login(msg *ctx.Message, w http.ResponseWriter, r *http.Request) func (web *WEB) HandleCmd(m *ctx.Message, key string, cmd *ctx.Command) { web.HandleFunc(key, func(w http.ResponseWriter, r *http.Request) { m.TryCatch(m.Spawn(m.Conf("serve", "autofree")), true, func(msg *ctx.Message) { + defer func() { + msg.Log("time", "cost: %v", msg.Time(time.Now())) + }() msg.Option("remote_addr", r.RemoteAddr) msg.Option("remote_ip", r.Header.Get("remote_ip")) msg.Option("index_url", r.Header.Get("index_url"))