[#369] Add build tag for http logging
Build tag 'loghttp' for log_http.go. Created log_http_stub.go for default response without tag. Signed-off-by: Nikita Zinkevich <n.zinkevich@yadro.com>
This commit is contained in:
parent
6f3bedc023
commit
6ae42c699c
4 changed files with 61 additions and 24 deletions
|
@ -1,3 +1,5 @@
|
||||||
|
//go:build loghttp
|
||||||
|
|
||||||
package middleware
|
package middleware
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
@ -88,10 +90,9 @@ func LogHTTP(l *zap.Logger, config *LogHTTPConfig) Func {
|
||||||
httplog = withFieldIfExist(httplog, "query", r.URL.Query())
|
httplog = withFieldIfExist(httplog, "query", r.URL.Query())
|
||||||
httplog = withFieldIfExist(httplog, "headers", r.Header)
|
httplog = withFieldIfExist(httplog, "headers", r.Header)
|
||||||
if r.ContentLength > 0 && r.ContentLength <= config.MaxBody {
|
if r.ContentLength > 0 && r.ContentLength <= config.MaxBody {
|
||||||
var err error
|
|
||||||
httplog, err = withBody(httplog, r)
|
httplog, err = withBody(httplog, r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
l.Error("read body error", zap.Error(err))
|
l.Warn(logs.FailedToGetRequestBody, zap.Error(err))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
httplog.Info(logs.RequestHTTP)
|
httplog.Info(logs.RequestHTTP)
|
||||||
|
|
31
api/middleware/log_http_stub.go
Normal file
31
api/middleware/log_http_stub.go
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
//go:build !loghttp
|
||||||
|
|
||||||
|
package middleware
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"git.frostfs.info/TrueCloudLab/frostfs-s3-gw/internal/logs"
|
||||||
|
"go.uber.org/zap"
|
||||||
|
)
|
||||||
|
|
||||||
|
type LogHTTPConfig struct {
|
||||||
|
Enabled bool
|
||||||
|
MaxBody int64
|
||||||
|
MaxLogSize int
|
||||||
|
OutputPath string
|
||||||
|
UseGzip bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func LogHTTP(l *zap.Logger, _ *LogHTTPConfig) Func {
|
||||||
|
l.Warn(logs.LogHTTPDisabledInThisBuild)
|
||||||
|
return func(h http.Handler) http.Handler {
|
||||||
|
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
h.ServeHTTP(w, r)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func ReloadFileLogger(conf *LogHTTPConfig) error {
|
||||||
|
return nil
|
||||||
|
}
|
|
@ -220,7 +220,7 @@ func (s *appSettings) update(v *viper.Viper, log *zap.Logger) {
|
||||||
s.setRetryMaxAttempts(fetchRetryMaxAttempts(v))
|
s.setRetryMaxAttempts(fetchRetryMaxAttempts(v))
|
||||||
s.setRetryMaxBackoff(fetchRetryMaxBackoff(v))
|
s.setRetryMaxBackoff(fetchRetryMaxBackoff(v))
|
||||||
s.setRetryStrategy(fetchRetryStrategy(v))
|
s.setRetryStrategy(fetchRetryStrategy(v))
|
||||||
s.updateHTTPLoggingSettings(v)
|
s.updateHTTPLoggingSettings(v, log)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *appSettings) updateNamespacesSettings(v *viper.Viper, log *zap.Logger) {
|
func (s *appSettings) updateNamespacesSettings(v *viper.Viper, log *zap.Logger) {
|
||||||
|
@ -564,7 +564,7 @@ func newMaxClients(cfg *viper.Viper) maxClientsConfig {
|
||||||
return config
|
return config
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *appSettings) updateHTTPLoggingSettings(cfg *viper.Viper) {
|
func (s *appSettings) updateHTTPLoggingSettings(cfg *viper.Viper, log *zap.Logger) {
|
||||||
s.mu.Lock()
|
s.mu.Lock()
|
||||||
defer s.mu.Unlock()
|
defer s.mu.Unlock()
|
||||||
|
|
||||||
|
@ -573,6 +573,9 @@ func (s *appSettings) updateHTTPLoggingSettings(cfg *viper.Viper) {
|
||||||
s.httpLogging.MaxLogSize = cfg.GetInt(cfgHTTPLoggingMaxLogSize)
|
s.httpLogging.MaxLogSize = cfg.GetInt(cfgHTTPLoggingMaxLogSize)
|
||||||
s.httpLogging.OutputPath = cfg.GetString(cfgHTTPLoggingDestination)
|
s.httpLogging.OutputPath = cfg.GetString(cfgHTTPLoggingDestination)
|
||||||
s.httpLogging.UseGzip = cfg.GetBool(cfgHTTPLoggingGzip)
|
s.httpLogging.UseGzip = cfg.GetBool(cfgHTTPLoggingGzip)
|
||||||
|
if err := s3middleware.ReloadFileLogger(s.httpLogging); err != nil {
|
||||||
|
log.Error(logs.FailedToReloadHTTPFileLogger, zap.Error(err))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getPools(ctx context.Context, logger *zap.Logger, cfg *viper.Viper) (*pool.Pool, *treepool.Pool, *keys.PrivateKey) {
|
func getPools(ctx context.Context, logger *zap.Logger, cfg *viper.Viper) (*pool.Pool, *treepool.Pool, *keys.PrivateKey) {
|
||||||
|
|
|
@ -100,7 +100,9 @@ const (
|
||||||
FailedToPassAuthentication = "failed to pass authentication" // Error in ../../api/middleware/auth.go
|
FailedToPassAuthentication = "failed to pass authentication" // Error in ../../api/middleware/auth.go
|
||||||
FailedToResolveCID = "failed to resolve CID" // Debug in ../../api/middleware/metrics.go
|
FailedToResolveCID = "failed to resolve CID" // Debug in ../../api/middleware/metrics.go
|
||||||
RequestStart = "request start" // Info in ../../api/middleware/reqinfo.go
|
RequestStart = "request start" // Info in ../../api/middleware/reqinfo.go
|
||||||
RequestHTTP = "http request"
|
RequestHTTP = "http request" // Info in ../../api/middleware/log_http.go
|
||||||
|
LogHTTPDisabledInThisBuild = "http logging disabled in this build" // Warn in ../../api/middleware/log_http_stub.go
|
||||||
|
FailedToGetRequestBody = "failed to get request body" // Warn in ../../api/middleware/log_http_stub.go
|
||||||
FailedToUnescapeObjectName = "failed to unescape object name" // Warn in ../../api/middleware/reqinfo.go
|
FailedToUnescapeObjectName = "failed to unescape object name" // Warn in ../../api/middleware/reqinfo.go
|
||||||
InvalidDefaultMaxAge = "invalid defaultMaxAge" // Fatal in ../../cmd/s3-gw/app_settings.go
|
InvalidDefaultMaxAge = "invalid defaultMaxAge" // Fatal in ../../cmd/s3-gw/app_settings.go
|
||||||
CantShutDownService = "can't shut down service" // Panic in ../../cmd/s3-gw/service.go
|
CantShutDownService = "can't shut down service" // Panic in ../../cmd/s3-gw/service.go
|
||||||
|
|
Loading…
Reference in a new issue