Add limiting ability to log fields (#24251)

Этот коммит содержится в:
Ibrahim Serdar Acikgoz
2023-09-28 19:28:40 +03:00
коммит произвёл GitHub
родитель 703ad006ad
Коммит 53a0f8da27
5 изменённых файлов: 12 добавлений и 7 удалений

Просмотреть файл

@@ -13,6 +13,7 @@ import (
"os" "os"
"time" "time"
"github.com/mattermost/logr/v2"
"github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/model"
"github.com/mattermost/mattermost/server/public/shared/mlog" "github.com/mattermost/mattermost/server/public/shared/mlog"
"github.com/mattermost/mattermost/server/v8/config" "github.com/mattermost/mattermost/server/v8/config"
@@ -31,7 +32,7 @@ func (ps *PlatformService) initLogging() error {
// create the app logger if needed // create the app logger if needed
if ps.logger == nil { if ps.logger == nil {
var err error var err error
ps.logger, err = mlog.NewLogger() ps.logger, err = mlog.NewLogger(logr.MaxFieldLen(*ps.Config().LogSettings.MaxFieldSize))
if err != nil { if err != nil {
return err return err
} }

Просмотреть файл

@@ -37,7 +37,7 @@ require (
github.com/lib/pq v1.10.9 github.com/lib/pq v1.10.9
github.com/mattermost/go-i18n v1.11.1-0.20211013152124-5c415071e404 github.com/mattermost/go-i18n v1.11.1-0.20211013152124-5c415071e404
github.com/mattermost/gziphandler v0.0.1 github.com/mattermost/gziphandler v0.0.1
github.com/mattermost/logr/v2 v2.0.16 github.com/mattermost/logr/v2 v2.0.18
github.com/mattermost/mattermost/server/public v0.0.9 github.com/mattermost/mattermost/server/public v0.0.9
github.com/mattermost/morph v1.0.5-0.20230511171014-e76e25978d56 github.com/mattermost/morph v1.0.5-0.20230511171014-e76e25978d56
github.com/mattermost/rsc v0.0.0-20160330161541-bbaefb05eaa0 github.com/mattermost/rsc v0.0.0-20160330161541-bbaefb05eaa0

Просмотреть файл

@@ -443,8 +443,8 @@ github.com/mattermost/gziphandler v0.0.1 h1:uXHcXF5agnQ6bXabvpiwwwZOlCYoa7mKHH0l
github.com/mattermost/gziphandler v0.0.1/go.mod h1:CvvZR7sXqhj81V2swXuQY7T04Ccc89u7W7pHNPKev8g= github.com/mattermost/gziphandler v0.0.1/go.mod h1:CvvZR7sXqhj81V2swXuQY7T04Ccc89u7W7pHNPKev8g=
github.com/mattermost/ldap v0.0.0-20201202150706-ee0e6284187d h1:/RJ/UV7M5c7L2TQ0KNm4yZxxFvC1nvRz/gY/Daa35aI= github.com/mattermost/ldap v0.0.0-20201202150706-ee0e6284187d h1:/RJ/UV7M5c7L2TQ0KNm4yZxxFvC1nvRz/gY/Daa35aI=
github.com/mattermost/ldap v0.0.0-20201202150706-ee0e6284187d/go.mod h1:HLbgMEI5K131jpxGazJ97AxfPDt31osq36YS1oxFQPQ= github.com/mattermost/ldap v0.0.0-20201202150706-ee0e6284187d/go.mod h1:HLbgMEI5K131jpxGazJ97AxfPDt31osq36YS1oxFQPQ=
github.com/mattermost/logr/v2 v2.0.16 h1:jnePX4cPskC3WDFvUardh/xZfxNdsFXbEERJQ1kUEDE= github.com/mattermost/logr/v2 v2.0.18 h1:qiznuwwKckZJoGtBYc4Y9FAY97/oQwV1Pq9oO5qP5nk=
github.com/mattermost/logr/v2 v2.0.16/go.mod h1:1dm/YhTpozsqANXxo5Pi5zYLBsal2xY0pX+JZNbzYJY= github.com/mattermost/logr/v2 v2.0.18/go.mod h1:1dm/YhTpozsqANXxo5Pi5zYLBsal2xY0pX+JZNbzYJY=
github.com/mattermost/mattermost/server/public v0.0.9 h1:Qsktgxx5dc8xVAUHP5MbSLi6Cf82iB/83r6S9bluHto= github.com/mattermost/mattermost/server/public v0.0.9 h1:Qsktgxx5dc8xVAUHP5MbSLi6Cf82iB/83r6S9bluHto=
github.com/mattermost/mattermost/server/public v0.0.9/go.mod h1:sgXQrYzs+IJy51mB8E8OBljagk2u3YwQRoYlBH5goiw= github.com/mattermost/mattermost/server/public v0.0.9/go.mod h1:sgXQrYzs+IJy51mB8E8OBljagk2u3YwQRoYlBH5goiw=
github.com/mattermost/morph v1.0.5-0.20230511171014-e76e25978d56 h1:SjFYbWvmuf73d/KaYlnHosPpB3/k38ebr1WWw9X5XKc= github.com/mattermost/morph v1.0.5-0.20230511171014-e76e25978d56 h1:SjFYbWvmuf73d/KaYlnHosPpB3/k38ebr1WWw9X5XKc=

Просмотреть файл

@@ -152,13 +152,12 @@ func (backend *LocalBackend) ServeImage(w http.ResponseWriter, req *http.Request
resp, err := backend.client.Do(actualReq) resp, err := backend.client.Do(actualReq)
if err != nil { if err != nil {
msg := fmt.Sprintf("error fetching remote image: %v", err) mlog.Warn("error fetching remote image", mlog.Err(err))
mlog.Warn(msg)
statusCode := http.StatusInternalServerError statusCode := http.StatusInternalServerError
if e, ok := err.(net.Error); ok && e.Timeout() { if e, ok := err.(net.Error); ok && e.Timeout() {
statusCode = http.StatusGatewayTimeout statusCode = http.StatusGatewayTimeout
} }
http.Error(w, msg, statusCode) http.Error(w, fmt.Sprintf("error fetching remote image: %v", err), statusCode)
return return
} }
// close the original resp.Body, even if we wrap it in a NopCloser below // close the original resp.Body, even if we wrap it in a NopCloser below

Просмотреть файл

@@ -1276,6 +1276,7 @@ type LogSettings struct {
EnableSentry *bool `access:"environment_logging,write_restrictable,cloud_restrictable"` // telemetry: none EnableSentry *bool `access:"environment_logging,write_restrictable,cloud_restrictable"` // telemetry: none
AdvancedLoggingJSON json.RawMessage `access:"environment_logging,write_restrictable,cloud_restrictable"` AdvancedLoggingJSON json.RawMessage `access:"environment_logging,write_restrictable,cloud_restrictable"`
AdvancedLoggingConfig *string `access:"environment_logging,write_restrictable,cloud_restrictable"` // Deprecated: use `AdvancedLoggingJSON` AdvancedLoggingConfig *string `access:"environment_logging,write_restrictable,cloud_restrictable"` // Deprecated: use `AdvancedLoggingJSON`
MaxFieldSize *int `access:"environment_logging,write_restrictable,cloud_restrictable"`
} }
func NewLogSettings() *LogSettings { func NewLogSettings() *LogSettings {
@@ -1340,6 +1341,10 @@ func (s *LogSettings) SetDefaults() {
if s.AdvancedLoggingConfig == nil { if s.AdvancedLoggingConfig == nil {
s.AdvancedLoggingConfig = NewString("") s.AdvancedLoggingConfig = NewString("")
} }
if s.MaxFieldSize == nil {
s.MaxFieldSize = NewInt(2048)
}
} }
// GetAdvancedLoggingConfig returns the advanced logging config as a []byte. // GetAdvancedLoggingConfig returns the advanced logging config as a []byte.