Skip to content

Commit b68fc6b

Browse files
committed
log body size
1 parent 0ceec03 commit b68fc6b

File tree

7 files changed

+23
-3
lines changed

7 files changed

+23
-3
lines changed

model/server_settings.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,7 @@ type LoggerSettings struct {
369369
// Deprecated: User HTTPDetailing on module level.
370370
DumpRequest bool `yaml:"dumpRequest" json:"dumpRequest"`
371371
Format string `yaml:"format" json:"format"`
372+
MaxBodySize int `yaml:"maxBodySize" json:"maxBodySize"`
372373
LogSensitiveData bool `yaml:"logSensitiveData" json:"logSensitiveData"`
373374
Common LoggerParams `yaml:"common" json:"common"`
374375
API LoggerParams `yaml:"api" json:"api"`

model/server_settings_validation.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package model
22

33
import (
4+
"errors"
45
"fmt"
56
"net/url"
67
"os"
@@ -146,7 +147,7 @@ func (sss *SessionStorageSettings) Validate() []error {
146147
result := []error{}
147148

148149
if len(sss.Type) == 0 {
149-
result = append(result, fmt.Errorf("Empty session storage type"))
150+
result = append(result, errors.New("empty session storage type"))
150151
}
151152
if sss.SessionDuration.Duration == 0 {
152153
result = append(result, fmt.Errorf("%s. Session duration is 0 seconds", subject))
@@ -226,7 +227,7 @@ func (sss *SMSServiceSettings) Validate() []error {
226227
subject := "SMSServiceSettings"
227228
result := []error{}
228229
if len(sss.Type) == 0 {
229-
return []error{fmt.Errorf("Empty SMS service type")}
230+
return []error{errors.New("empty SMS service type")}
230231
}
231232

232233
switch sss.Type {

web/admin/router.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ func NewRouter(settings RouterSettings) (model.Router, error) {
5757
ar.middleware = buildMiddleware(
5858
settings.LoggerSettings.DumpRequest,
5959
settings.LoggerSettings.Format,
60+
settings.LoggerSettings.MaxBodySize,
6061
settings.LoggerSettings.Admin,
6162
settings.LoggerSettings.LogSensitiveData,
6263
settings.Cors)
@@ -70,6 +71,7 @@ func NewRouter(settings RouterSettings) (model.Router, error) {
7071
func buildMiddleware(
7172
dumpRequest bool,
7273
format string,
74+
maxBodySize int,
7375
logParams model.LoggerParams,
7476
logSensitiveData bool,
7577
corsHandler *cors.Cors,
@@ -79,6 +81,7 @@ func buildMiddleware(
7981
lm := middleware.NegroniHTTPLogger(
8082
logging.ComponentAdmin,
8183
format,
84+
maxBodySize,
8285
logParams,
8386
model.HTTPLogDetailing(dumpRequest, logParams.HTTPDetailing),
8487
!logSensitiveData,

web/api/routes.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ func (ar *Router) initRoutes(
2828
baseMiddleware := buildBaseMiddleware(
2929
loggerSettings.DumpRequest,
3030
loggerSettings.Format,
31+
loggerSettings.MaxBodySize,
3132
loggerSettings.API,
3233
loggerSettings.LogSensitiveData,
3334
ar.cors,
@@ -58,6 +59,7 @@ func (ar *Router) initRoutes(
5859
func buildBaseMiddleware(
5960
dumpRequest bool,
6061
format string,
62+
maxBodySize int,
6163
logParams model.LoggerParams,
6264
logSensitiveData bool,
6365
cors *cors.Cors,
@@ -81,6 +83,7 @@ func buildBaseMiddleware(
8183
lm := middleware.NegroniHTTPLogger(
8284
logging.ComponentAPI,
8385
format,
86+
maxBodySize,
8487
logParams,
8588
model.HTTPLogDetailing(dumpRequest, logParams.HTTPDetailing),
8689
!logSensitiveData,

web/management/routes.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ func (ar *Router) initRoutes(loggerSettings model.LoggerSettings) {
1616
lm := imiddleware.HTTPLogger(
1717
logging.ComponentAPI,
1818
loggerSettings.Format,
19+
loggerSettings.MaxBodySize,
1920
loggerSettings.Management,
2021
model.HTTPLogDetailing(loggerSettings.DumpRequest, loggerSettings.Management.HTTPDetailing),
2122
!loggerSettings.LogSensitiveData,

web/middleware/logger.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,13 @@ import (
1515
func NegroniHTTPLogger(
1616
component string,
1717
format string,
18+
maxBodySize int,
1819
logParams model.LoggerParams,
1920
httpDetailing model.HTTPDetailing,
2021
excludeAuth bool,
2122
exclude ...string,
2223
) negroni.Handler {
23-
logger := HTTPLogger(component, format, logParams, httpDetailing, excludeAuth, exclude...)
24+
logger := HTTPLogger(component, format, maxBodySize, logParams, httpDetailing, excludeAuth, exclude...)
2425

2526
return negroni.HandlerFunc(func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc) {
2627
logger(next).ServeHTTP(w, r)
@@ -34,6 +35,7 @@ func emptyMiddleware(next http.Handler) http.Handler {
3435
func HTTPLogger(
3536
component string,
3637
format string,
38+
maxBodySize int,
3739
logParams model.LoggerParams,
3840
httpDetailing model.HTTPDetailing,
3941
excludeAuth bool,
@@ -96,6 +98,12 @@ func HTTPLogger(
9698
return true, logBody(r.URL.Path)
9799
}))
98100

101+
if maxBodySize <= 0 {
102+
maxBodySize = httpdump.DefaultBodySize
103+
}
104+
105+
opts = append(opts, httpdump.WithLimitedBody(maxBodySize))
106+
99107
hd := httpdump.NewMiddlewareWrapper(dumpReq, dumpResp, opts...)
100108
return hd
101109
}

web/spa/router.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ func NewRouter(setting SPASettings, middlewares []negroni.Handler) (model.Router
2424
setting.Name,
2525
setting.LoggerSettings.DumpRequest,
2626
setting.LoggerSettings.Format,
27+
setting.LoggerSettings.MaxBodySize,
2728
setting.LoggerSettings.SPA,
2829
!setting.LoggerSettings.LogSensitiveData,
2930
middlewares,
@@ -50,13 +51,15 @@ func buildMiddleware(
5051
settingName string,
5152
dumpRequest bool,
5253
format string,
54+
maxBodySize int,
5355
logParams model.LoggerParams,
5456
logSensitiveData bool,
5557
middlewares []negroni.Handler,
5658
) *negroni.Negroni {
5759
lm := middleware.NegroniHTTPLogger(
5860
settingName,
5961
format,
62+
maxBodySize,
6063
logParams,
6164
model.HTTPLogDetailing(dumpRequest, logParams.HTTPDetailing),
6265
!logSensitiveData,

0 commit comments

Comments
 (0)