about summary refs log tree commit diff stats
path: root/internal
diff options
context:
space:
mode:
authorAlan Pearce2025-01-20 10:24:23 +0100
committerAlan Pearce2025-01-20 10:24:23 +0100
commit584d295c25697c19ffd369d22281f7d53a139f18 (patch)
treebb9ba3f2bd925fad9310cde33ed37faa07dacd61 /internal
parent19d8046f99d9f395f8529886f37292d99dc1a4d9 (diff)
downloadsearchix-584d295c25697c19ffd369d22281f7d53a139f18.tar.lz
searchix-584d295c25697c19ffd369d22281f7d53a139f18.tar.zst
searchix-584d295c25697c19ffd369d22281f7d53a139f18.zip
feat: allow HTTP request logging to be disabled
Diffstat (limited to 'internal')
-rw-r--r--internal/config/default.go1
-rw-r--r--internal/config/structs.go1
-rw-r--r--internal/server/logging.go5
-rw-r--r--internal/server/mux.go1
4 files changed, 8 insertions, 0 deletions
diff --git a/internal/config/default.go b/internal/config/default.go
index 5202678..752d4e3 100644
--- a/internal/config/default.go
+++ b/internal/config/default.go
@@ -45,6 +45,7 @@ var DefaultConfig = Config{
 			"x-content-type-options": "nosniff",
 			"x-frame-options":        "DENY",
 		},
+		LogRequests: true,
 	},
 	Importer: &Importer{
 		LowMemory: false,
diff --git a/internal/config/structs.go b/internal/config/structs.go
index e73425b..8c69733 100644
--- a/internal/config/structs.go
+++ b/internal/config/structs.go
@@ -25,6 +25,7 @@ type Web struct {
 	Environment           string            `comment:"Affects logging parameters. One of 'development' or 'production'"`
 	ExtraHeadHTML         string            `comment:"Content to add to HTML <head>. Can be used to override styling, add scripts, etc."`
 	Headers               map[string]string `comment:"Extra headers to send with HTTP requests"`
+	LogRequests           bool              `comment:"Whether to log incoming HTTP requests"`
 }
 
 type Importer struct {
diff --git a/internal/server/logging.go b/internal/server/logging.go
index 6e2f7c8..5930b9d 100644
--- a/internal/server/logging.go
+++ b/internal/server/logging.go
@@ -42,9 +42,14 @@ func NewLoggingResponseWriter(w http.ResponseWriter) *LoggingResponseWriter {
 type wrappedHandlerOptions struct {
 	defaultHostname string
 	logger          *log.Logger
+	enabled         bool
 }
 
 func wrapHandlerWithLogging(wrappedHandler http.Handler, opts wrappedHandlerOptions) http.Handler {
+	if !opts.enabled {
+		return wrappedHandler
+	}
+
 	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
 		scheme := r.Header.Get("X-Forwarded-Proto")
 		if scheme == "" {
diff --git a/internal/server/mux.go b/internal/server/mux.go
index 0403470..9dbcc86 100644
--- a/internal/server/mux.go
+++ b/internal/server/mux.go
@@ -389,6 +389,7 @@ func NewMux(
 			wrapHandlerWithLogging(mux, wrappedHandlerOptions{
 				defaultHostname: cfg.Web.BaseURL.Hostname(),
 				logger:          log,
+				enabled:         cfg.Web.LogRequests,
 			}),
 			cfg,
 		),