]> source.dussan.org Git - gitea.git/commitdiff
Remove macaron dependent on modules/log (#6933)
authorLunny Xiao <xiaolunwen@gmail.com>
Tue, 14 May 2019 02:55:52 +0000 (10:55 +0800)
committertechknowlogick <techknowlogick@gitea.io>
Tue, 14 May 2019 02:55:52 +0000 (22:55 -0400)
modules/log/colors_router.go [new file with mode: 0644]
modules/log/router.go [deleted file]
routers/routes/routes.go

diff --git a/modules/log/colors_router.go b/modules/log/colors_router.go
new file mode 100644 (file)
index 0000000..e291a0d
--- /dev/null
@@ -0,0 +1,83 @@
+// Copyright 2019 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package log
+
+import (
+       "time"
+)
+
+var statusToColor = map[int][]byte{
+       100: ColorBytes(Bold),
+       200: ColorBytes(FgGreen),
+       300: ColorBytes(FgYellow),
+       304: ColorBytes(FgCyan),
+       400: ColorBytes(Bold, FgRed),
+       401: ColorBytes(Bold, FgMagenta),
+       403: ColorBytes(Bold, FgMagenta),
+       500: ColorBytes(Bold, BgRed),
+}
+
+// ColoredStatus addes colors for HTTP status
+func ColoredStatus(status int, s ...string) *ColoredValue {
+       color, ok := statusToColor[status]
+       if !ok {
+               color, ok = statusToColor[(status/100)*100]
+       }
+       if !ok {
+               color = fgBoldBytes
+       }
+       if len(s) > 0 {
+               return NewColoredValueBytes(s[0], &color)
+       }
+       return NewColoredValueBytes(status, &color)
+}
+
+var methodToColor = map[string][]byte{
+       "GET":    ColorBytes(FgBlue),
+       "POST":   ColorBytes(FgGreen),
+       "DELETE": ColorBytes(FgRed),
+       "PATCH":  ColorBytes(FgCyan),
+       "PUT":    ColorBytes(FgYellow, Faint),
+       "HEAD":   ColorBytes(FgBlue, Faint),
+}
+
+// ColoredMethod addes colors for HtTP methos on log
+func ColoredMethod(method string) *ColoredValue {
+       color, ok := methodToColor[method]
+       if !ok {
+               return NewColoredValueBytes(method, &fgBoldBytes)
+       }
+       return NewColoredValueBytes(method, &color)
+}
+
+var (
+       durations = []time.Duration{
+               10 * time.Millisecond,
+               100 * time.Millisecond,
+               1 * time.Second,
+               5 * time.Second,
+               10 * time.Second,
+       }
+
+       durationColors = [][]byte{
+               ColorBytes(FgGreen),
+               ColorBytes(Bold),
+               ColorBytes(FgYellow),
+               ColorBytes(FgRed, Bold),
+               ColorBytes(BgRed),
+       }
+
+       wayTooLong = ColorBytes(BgMagenta)
+)
+
+// ColoredTime addes colors for time on log
+func ColoredTime(duration time.Duration) *ColoredValue {
+       for i, k := range durations {
+               if duration < k {
+                       return NewColoredValueBytes(duration, &durationColors[i])
+               }
+       }
+       return NewColoredValueBytes(duration, &wayTooLong)
+}
diff --git a/modules/log/router.go b/modules/log/router.go
deleted file mode 100644 (file)
index 842202c..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-// Copyright 2019 The Gitea Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package log
-
-import (
-       "net/http"
-       "time"
-
-       macaron "gopkg.in/macaron.v1"
-)
-
-var statusToColor = map[int][]byte{
-       100: ColorBytes(Bold),
-       200: ColorBytes(FgGreen),
-       300: ColorBytes(FgYellow),
-       304: ColorBytes(FgCyan),
-       400: ColorBytes(Bold, FgRed),
-       401: ColorBytes(Bold, FgMagenta),
-       403: ColorBytes(Bold, FgMagenta),
-       500: ColorBytes(Bold, BgRed),
-}
-
-func coloredStatus(status int, s ...string) *ColoredValue {
-       color, ok := statusToColor[status]
-       if !ok {
-               color, ok = statusToColor[(status/100)*100]
-       }
-       if !ok {
-               color = fgBoldBytes
-       }
-       if len(s) > 0 {
-               return NewColoredValueBytes(s[0], &color)
-       }
-       return NewColoredValueBytes(status, &color)
-}
-
-var methodToColor = map[string][]byte{
-       "GET":    ColorBytes(FgBlue),
-       "POST":   ColorBytes(FgGreen),
-       "DELETE": ColorBytes(FgRed),
-       "PATCH":  ColorBytes(FgCyan),
-       "PUT":    ColorBytes(FgYellow, Faint),
-       "HEAD":   ColorBytes(FgBlue, Faint),
-}
-
-func coloredMethod(method string) *ColoredValue {
-       color, ok := methodToColor[method]
-       if !ok {
-               return NewColoredValueBytes(method, &fgBoldBytes)
-       }
-       return NewColoredValueBytes(method, &color)
-}
-
-var durations = []time.Duration{
-       10 * time.Millisecond,
-       100 * time.Millisecond,
-       1 * time.Second,
-       5 * time.Second,
-       10 * time.Second,
-}
-
-var durationColors = [][]byte{
-       ColorBytes(FgGreen),
-       ColorBytes(Bold),
-       ColorBytes(FgYellow),
-       ColorBytes(FgRed, Bold),
-       ColorBytes(BgRed),
-}
-
-var wayTooLong = ColorBytes(BgMagenta)
-
-func coloredTime(duration time.Duration) *ColoredValue {
-       for i, k := range durations {
-               if duration < k {
-                       return NewColoredValueBytes(duration, &durationColors[i])
-               }
-       }
-       return NewColoredValueBytes(duration, &wayTooLong)
-}
-
-// SetupRouterLogger will setup macaron to routing to the main gitea log
-func SetupRouterLogger(m *macaron.Macaron, level Level) {
-       if GetLevel() <= level {
-               m.Use(RouterHandler(level))
-       }
-}
-
-// RouterHandler is a macaron handler that will log the routing to the default gitea log
-func RouterHandler(level Level) func(ctx *macaron.Context) {
-       return func(ctx *macaron.Context) {
-               start := time.Now()
-
-               GetLogger("router").Log(0, level, "Started %s %s for %s", coloredMethod(ctx.Req.Method), ctx.Req.RequestURI, ctx.RemoteAddr())
-
-               rw := ctx.Resp.(macaron.ResponseWriter)
-               ctx.Next()
-
-               status := rw.Status()
-               GetLogger("router").Log(0, level, "Completed %s %s %v %s in %v", coloredMethod(ctx.Req.Method), ctx.Req.RequestURI, coloredStatus(status), coloredStatus(status, http.StatusText(rw.Status())), coloredTime(time.Since(start)))
-       }
-}
index 938afcab791a9500d1bfad705a93eb81762753af..5a5fc518b92776cf978e7571a8ad61808949d732 100644 (file)
@@ -94,6 +94,21 @@ func setupAccessLogger(m *macaron.Macaron) {
        })
 }
 
+// RouterHandler is a macaron handler that will log the routing to the default gitea log
+func RouterHandler(level log.Level) func(ctx *macaron.Context) {
+       return func(ctx *macaron.Context) {
+               start := time.Now()
+
+               log.GetLogger("router").Log(0, level, "Started %s %s for %s", log.ColoredMethod(ctx.Req.Method), ctx.Req.RequestURI, ctx.RemoteAddr())
+
+               rw := ctx.Resp.(macaron.ResponseWriter)
+               ctx.Next()
+
+               status := rw.Status()
+               log.GetLogger("router").Log(0, level, "Completed %s %s %v %s in %v", log.ColoredMethod(ctx.Req.Method), ctx.Req.RequestURI, log.ColoredStatus(status), log.ColoredStatus(status, http.StatusText(rw.Status())), log.ColoredTime(time.Since(start)))
+       }
+}
+
 // NewMacaron initializes Macaron instance.
 func NewMacaron() *macaron.Macaron {
        gob.Register(&u2f.Challenge{})
@@ -102,7 +117,9 @@ func NewMacaron() *macaron.Macaron {
                loggerAsWriter := log.NewLoggerAsWriter("INFO", log.GetLogger("macaron"))
                m = macaron.NewWithLogger(loggerAsWriter)
                if !setting.DisableRouterLog && setting.RouterLogLevel != log.NONE {
-                       log.SetupRouterLogger(m, setting.RouterLogLevel)
+                       if log.GetLogger("router").GetLevel() <= setting.RouterLogLevel {
+                               m.Use(RouterHandler(setting.RouterLogLevel))
+                       }
                }
        } else {
                m = macaron.New()