aboutsummaryrefslogtreecommitdiffstats
path: root/routers/web/base.go
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2022-01-20 19:41:25 +0800
committerGitHub <noreply@github.com>2022-01-20 19:41:25 +0800
commit5bf8d5445e3e3ec6b2be156654dcb233d78a570e (patch)
tree9a426fd03b619947b88931465c1a645540b94bfb /routers/web/base.go
parentbbd30787d3d33fe66896c7e758e6922be459e252 (diff)
downloadgitea-5bf8d5445e3e3ec6b2be156654dcb233d78a570e.tar.gz
gitea-5bf8d5445e3e3ec6b2be156654dcb233d78a570e.zip
Refactor Router Logger (#17308)
Make router logger more friendly, show the related function name/file/line. [BREAKING] This PR substantially changes the logging format of the router logger. If you use this logging for monitoring e.g. fail2ban you will need to update this to match the new format.
Diffstat (limited to 'routers/web/base.go')
-rw-r--r--routers/web/base.go9
1 files changed, 7 insertions, 2 deletions
diff --git a/routers/web/base.go b/routers/web/base.go
index 98713bc881..fd942d3c87 100644
--- a/routers/web/base.go
+++ b/routers/web/base.go
@@ -21,12 +21,14 @@ import (
"code.gitea.io/gitea/modules/storage"
"code.gitea.io/gitea/modules/templates"
"code.gitea.io/gitea/modules/web/middleware"
+ "code.gitea.io/gitea/modules/web/routing"
"code.gitea.io/gitea/services/auth"
"gitea.com/go-chi/session"
)
func storageHandler(storageSetting setting.Storage, prefix string, objStore storage.ObjectStorage) func(next http.Handler) http.Handler {
+ funcInfo := routing.GetFuncInfo(storageHandler, prefix)
return func(next http.Handler) http.Handler {
if storageSetting.ServeDirect {
return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
@@ -39,6 +41,7 @@ func storageHandler(storageSetting setting.Storage, prefix string, objStore stor
next.ServeHTTP(w, req)
return
}
+ routing.UpdateFuncInfo(req.Context(), funcInfo)
rPath := strings.TrimPrefix(req.URL.RequestURI(), "/"+prefix)
u, err := objStore.URL(rPath, path.Base(rPath))
@@ -73,6 +76,7 @@ func storageHandler(storageSetting setting.Storage, prefix string, objStore stor
next.ServeHTTP(w, req)
return
}
+ routing.UpdateFuncInfo(req.Context(), funcInfo)
rPath := strings.TrimPrefix(req.URL.EscapedPath(), "/"+prefix+"/")
rPath = strings.TrimPrefix(rPath, "/")
@@ -126,8 +130,9 @@ func Recovery() func(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
defer func() {
if err := recover(); err != nil {
- combinedErr := fmt.Sprintf("PANIC: %v\n%s", err, string(log.Stack(2)))
- log.Error("%v", combinedErr)
+ routing.UpdatePanicError(req.Context(), err)
+ combinedErr := fmt.Sprintf("PANIC: %v\n%s", err, log.Stack(2))
+ log.Error("%s", combinedErr)
sessionStore := session.GetSession(req)