diff options
Diffstat (limited to 'routers')
-rw-r--r-- | routers/routes/routes.go | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/routers/routes/routes.go b/routers/routes/routes.go index 48d1dc6a7f..58274626c0 100644 --- a/routers/routes/routes.go +++ b/routers/routes/routes.go @@ -6,6 +6,7 @@ package routes import ( "encoding/gob" + "fmt" "net/http" "os" "path" @@ -45,12 +46,34 @@ import ( macaron "gopkg.in/macaron.v1" ) +func giteaLogger(l *log.LoggerAsWriter) macaron.Handler { + return func(ctx *macaron.Context) { + start := time.Now() + + l.Log(fmt.Sprintf("[Macaron] Started %s %s for %s", ctx.Req.Method, ctx.Req.RequestURI, ctx.RemoteAddr())) + + ctx.Next() + + rw := ctx.Resp.(macaron.ResponseWriter) + l.Log(fmt.Sprintf("[Macaron] Completed %s %s %v %s in %v", ctx.Req.Method, ctx.Req.RequestURI, rw.Status(), http.StatusText(rw.Status()), time.Since(start))) + } +} + // NewMacaron initializes Macaron instance. func NewMacaron() *macaron.Macaron { gob.Register(&u2f.Challenge{}) - m := macaron.New() - if !setting.DisableRouterLog { - m.Use(macaron.Logger()) + var m *macaron.Macaron + if setting.RedirectMacaronLog { + loggerAsWriter := log.NewLoggerAsWriter("INFO") + m = macaron.NewWithLogger(loggerAsWriter) + if !setting.DisableRouterLog { + m.Use(giteaLogger(loggerAsWriter)) + } + } else { + m = macaron.New() + if !setting.DisableRouterLog { + m.Use(macaron.Logger()) + } } m.Use(macaron.Recovery()) if setting.EnableGzip { |