Skip to content

Commit 45b4093

Browse files
committed
fix: reduce auth logging detail
1 parent d2ee4d5 commit 45b4093

File tree

2 files changed

+33
-24
lines changed

2 files changed

+33
-24
lines changed

src/app/app.go

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,24 @@ import (
1010
"go-http-server/util"
1111
"golang.org/x/exp/slices"
1212
"io"
13+
"log/slog"
1314
"mime"
1415
"net/http"
1516
"os"
1617
"path"
1718
"path/filepath"
1819
"strings"
20+
"sync"
1921
"time"
2022
)
2123

2224
type App struct {
23-
params *param.Params
24-
server *http.Server
25-
cache *lru.TwoQueueCache
26-
listenAndServe func(*http.Server) error
25+
params *param.Params
26+
server *http.Server
27+
cache *lru.TwoQueueCache
28+
listenAndServe func(*http.Server) error
29+
authLoggerInstance *slog.Logger
30+
authLoggerOnce sync.Once
2731
}
2832

2933
type ResponseItem struct {
@@ -64,10 +68,11 @@ func NewAppWithListenAndServe(params *param.Params, listenAndServe func(*http.Se
6468
}
6569

6670
return App{
67-
params: params,
68-
server: nil,
69-
cache: cache,
70-
listenAndServe: listenAndServe,
71+
params: params,
72+
server: nil,
73+
cache: cache,
74+
listenAndServe: listenAndServe,
75+
authLoggerInstance: nil,
7176
}
7277
}
7378

src/app/auth.go

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,8 @@ func (app *App) BasicAuthMiddleware(next http.Handler) http.Handler {
4545
logger.Info("[AUTH] failure",
4646
"path", r.URL.Path,
4747
"remoteAddr", r.RemoteAddr,
48+
"authProvided", ok,
4849
"userProvided", user != "",
49-
"matchedUser", userMatch,
50-
"matchedPass", passMatch,
5150
)
5251
}
5352
return
@@ -70,21 +69,26 @@ func (app *App) authLogger() *slog.Logger {
7069
return nil
7170
}
7271

73-
level := slog.LevelInfo
74-
switch strings.ToLower(os.Getenv("LOG_LEVEL")) {
75-
case "debug":
76-
level = slog.LevelDebug
77-
case "warn", "warning":
78-
level = slog.LevelWarn
79-
case "error":
80-
level = slog.LevelError
81-
}
72+
app.authLoggerOnce.Do(func() {
73+
level := slog.LevelInfo
74+
switch strings.ToLower(os.Getenv("LOG_LEVEL")) {
75+
case "debug":
76+
level = slog.LevelDebug
77+
case "warn", "warning":
78+
level = slog.LevelWarn
79+
case "error":
80+
level = slog.LevelError
81+
}
8282

83-
opts := &slog.HandlerOptions{Level: level}
84-
if app.params.LogPretty {
85-
return slog.New(slog.NewTextHandler(os.Stdout, opts))
86-
}
87-
return slog.New(slog.NewJSONHandler(os.Stdout, opts))
83+
opts := &slog.HandlerOptions{Level: level}
84+
if app.params.LogPretty {
85+
app.authLoggerInstance = slog.New(slog.NewTextHandler(os.Stdout, opts))
86+
} else {
87+
app.authLoggerInstance = slog.New(slog.NewJSONHandler(os.Stdout, opts))
88+
}
89+
})
90+
91+
return app.authLoggerInstance
8892
}
8993

9094
func constantTimeStringMatch(a string, b string) bool {

0 commit comments

Comments
 (0)