From 2552a6eccc54d865dbf92530cffe869fcce343c1 Mon Sep 17 00:00:00 2001 From: Hank Shen Date: Thu, 27 Jun 2024 20:02:03 +0800 Subject: [PATCH] update --- echo_test.go | 20 +++++++++++++++++++- middleware/log.go | 6 ++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/echo_test.go b/echo_test.go index d6c64e0..b32541a 100644 --- a/echo_test.go +++ b/echo_test.go @@ -18,6 +18,7 @@ import ( func init() { mw.DefaultLogWriter = log.Writer(log.LevelInfo) + log.Sync() } func request(method, path string, e *Echo, reqRewrite ...func(*http.Request)) (int, string) { @@ -78,6 +79,7 @@ func TestEchoMiddleware(t *testing.T) { func TestEchoMiddlewareError(t *testing.T) { e := New() + e.SetDebug(true) e.Use(mw.Log(), func(next HandlerFunc) HandlerFunc { return func(c Context) error { return errors.New("error") @@ -87,8 +89,24 @@ func TestEchoMiddlewareError(t *testing.T) { e.RebuildRouter() - c, _ := request(GET, "/", e) + c, r := request(GET, "/", e) + assert.Equal(t, http.StatusInternalServerError, c) + assert.Equal(t, `error`, r) +} + +func TestEchoHandlerError(t *testing.T) { + e := New() + e.SetDebug(true) + e.Use(mw.Log()) + e.Get("/", func(c Context) error { + return errors.New("error") + }) + + e.RebuildRouter() + + c, r := request(GET, "/", e) assert.Equal(t, http.StatusInternalServerError, c) + assert.Equal(t, `error`, r) } func TestEchoRoutePath(t *testing.T) { diff --git a/middleware/log.go b/middleware/log.go index b75e897..cc92dca 100644 --- a/middleware/log.go +++ b/middleware/log.go @@ -116,11 +116,13 @@ func LogWithConfig(config LogConfig) echo.MiddlewareFunc { } info := AcquireVisitorInfo() info.Time = time.Now() - err := h.Handle(c) + if err := h.Handle(c); err != nil { + c.Error(err) + } info.SetFromContext(c) config.Execute(info) ReleaseVisitorInfo(info) - return err + return nil }) } }