diff options
Diffstat (limited to 'web')
-rw-r--r-- | web/context.go | 26 | ||||
-rw-r--r-- | web/handlers.go | 12 |
2 files changed, 29 insertions, 9 deletions
diff --git a/web/context.go b/web/context.go index 8f79421e5..7e4318233 100644 --- a/web/context.go +++ b/web/context.go @@ -4,7 +4,6 @@ package web import ( - "fmt" "net/http" "regexp" "strings" @@ -19,6 +18,7 @@ import ( type Context struct { App *app.App + Log *mlog.Logger Session model.Session Params *Params Err *model.AppError @@ -55,8 +55,12 @@ func (c *Context) LogError(err *model.AppError) { err.Id == "web.check_browser_compatibility.app_error" { c.LogDebug(err) } else { - mlog.Error(fmt.Sprintf("%v:%v code=%v rid=%v uid=%v ip=%v %v [details: %v]", c.Path, err.Where, err.StatusCode, - c.RequestId, c.Session.UserId, c.IpAddress, err.SystemMessage(utils.TDefault), err.DetailedError), mlog.String("user_id", c.Session.UserId)) + c.Log.Error( + err.SystemMessage(utils.TDefault), + mlog.String("err_where", err.Where), + mlog.Int("http_code", err.StatusCode), + mlog.String("err_details", err.DetailedError), + ) } } @@ -65,14 +69,22 @@ func (c *Context) LogInfo(err *model.AppError) { if err.StatusCode == http.StatusUnauthorized { c.LogDebug(err) } else { - mlog.Info(fmt.Sprintf("%v:%v code=%v rid=%v uid=%v ip=%v %v [details: %v]", c.Path, err.Where, err.StatusCode, - c.RequestId, c.Session.UserId, c.IpAddress, err.SystemMessage(utils.TDefault), err.DetailedError), mlog.String("user_id", c.Session.UserId)) + c.Log.Info( + err.SystemMessage(utils.TDefault), + mlog.String("err_where", err.Where), + mlog.Int("http_code", err.StatusCode), + mlog.String("err_details", err.DetailedError), + ) } } func (c *Context) LogDebug(err *model.AppError) { - mlog.Debug(fmt.Sprintf("%v:%v code=%v rid=%v uid=%v ip=%v %v [details: %v]", c.Path, err.Where, err.StatusCode, - c.RequestId, c.Session.UserId, c.IpAddress, err.SystemMessage(utils.TDefault), err.DetailedError), mlog.String("user_id", c.Session.UserId)) + c.Log.Debug( + err.SystemMessage(utils.TDefault), + mlog.String("err_where", err.Where), + mlog.Int("http_code", err.StatusCode), + mlog.String("err_details", err.DetailedError), + ) } func (c *Context) IsSystemAdmin() bool { diff --git a/web/handlers.go b/web/handlers.go index e2521674a..363b05c59 100644 --- a/web/handlers.go +++ b/web/handlers.go @@ -55,6 +55,8 @@ func (h Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { c.RequestId = model.NewId() c.IpAddress = utils.GetIpAddress(r) c.Params = ParamsFromRequest(r) + c.Path = r.URL.Path + c.Log = c.App.Log token, tokenLocation := app.ParseAuthTokenFromRequest(r) @@ -88,7 +90,7 @@ func (h Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { session, err := c.App.GetSession(token) if err != nil { - mlog.Info(fmt.Sprintf("Invalid session err=%v", err.Error())) + c.Log.Info("Invalid session", mlog.Err(err)) if err.StatusCode == http.StatusInternalServerError { c.Err = err } else if h.RequireSession { @@ -107,7 +109,13 @@ func (h Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { } } - c.Path = r.URL.Path + c.Log = c.App.Log.With( + mlog.String("path", c.Path), + mlog.String("request_id", c.RequestId), + mlog.String("ip_addr", c.IpAddress), + mlog.String("user_id", c.Session.UserId), + mlog.String("method", r.Method), + ) if c.Err == nil && h.RequireSession { c.SessionRequired() |