diff options
Diffstat (limited to 'modules/web/routing/logger.go')
-rw-r--r-- | modules/web/routing/logger.go | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/modules/web/routing/logger.go b/modules/web/routing/logger.go index d1b0ff0cda..b58065aa73 100644 --- a/modules/web/routing/logger.go +++ b/modules/web/routing/logger.go @@ -5,6 +5,7 @@ package routing import ( "net/http" + "strings" "time" "code.gitea.io/gitea/modules/context" @@ -25,18 +26,18 @@ func NewLoggerHandler() func(next http.Handler) http.Handler { } var ( - startMessage = log.NewColoredValueBytes("started ", log.DEBUG.Color()) - slowMessage = log.NewColoredValueBytes("slow ", log.WARN.Color()) - pollingMessage = log.NewColoredValueBytes("polling ", log.INFO.Color()) - failedMessage = log.NewColoredValueBytes("failed ", log.WARN.Color()) - completedMessage = log.NewColoredValueBytes("completed", log.INFO.Color()) - unknownHandlerMessage = log.NewColoredValueBytes("completed", log.ERROR.Color()) + startMessage = log.NewColoredValue("started ", log.DEBUG.ColorAttributes()...) + slowMessage = log.NewColoredValue("slow ", log.WARN.ColorAttributes()...) + pollingMessage = log.NewColoredValue("polling ", log.INFO.ColorAttributes()...) + failedMessage = log.NewColoredValue("failed ", log.WARN.ColorAttributes()...) + completedMessage = log.NewColoredValue("completed", log.INFO.ColorAttributes()...) + unknownHandlerMessage = log.NewColoredValue("completed", log.ERROR.ColorAttributes()...) ) func logPrinter(logger log.Logger) func(trigger Event, record *requestRecord) { return func(trigger Event, record *requestRecord) { if trigger == StartEvent { - if !logger.IsTrace() { + if !logger.LevelEnabled(log.TRACE) { // for performance, if the "started" message shouldn't be logged, we just return as early as possible // developers can set the router log level to TRACE to get the "started" request messages. return @@ -59,12 +60,12 @@ func logPrinter(logger log.Logger) func(trigger Event, record *requestRecord) { if trigger == StillExecutingEvent { message := slowMessage - level := log.WARN + logf := logger.Warn if isLongPolling { - level = log.INFO + logf = logger.Info message = pollingMessage } - _ = logger.Log(0, level, "router: %s %v %s for %s, elapsed %v @ %s", + logf("router: %s %v %s for %s, elapsed %v @ %s", message, log.ColoredMethod(req.Method), req.RequestURI, req.RemoteAddr, log.ColoredTime(time.Since(record.startTime)), @@ -74,7 +75,7 @@ func logPrinter(logger log.Logger) func(trigger Event, record *requestRecord) { } if panicErr != nil { - _ = logger.Log(0, log.WARN, "router: %s %v %s for %s, panic in %v @ %s, err=%v", + logger.Warn("router: %s %v %s for %s, panic in %v @ %s, err=%v", failedMessage, log.ColoredMethod(req.Method), req.RequestURI, req.RemoteAddr, log.ColoredTime(time.Since(record.startTime)), @@ -88,14 +89,17 @@ func logPrinter(logger log.Logger) func(trigger Event, record *requestRecord) { if v, ok := record.responseWriter.(context.ResponseWriter); ok { status = v.Status() } - level := log.INFO + logf := log.Info + if strings.HasPrefix(req.RequestURI, "/assets/") { + logf = log.Trace + } message := completedMessage if isUnknownHandler { - level = log.ERROR + logf = log.Error message = unknownHandlerMessage } - _ = logger.Log(0, level, "router: %s %v %s for %s, %v %v in %v @ %s", + logf("router: %s %v %s for %s, %v %v in %v @ %s", message, log.ColoredMethod(req.Method), req.RequestURI, req.RemoteAddr, log.ColoredStatus(status), log.ColoredStatus(status, http.StatusText(status)), log.ColoredTime(time.Since(record.startTime)), |