diff --git a/pkg/log/log.go b/pkg/log/log.go index e61bb3c..25d9543 100644 --- a/pkg/log/log.go +++ b/pkg/log/log.go @@ -115,6 +115,9 @@ func argsToAttr(args []any) (slog.Attr, []any) { } func (entry *Entry) Log(message string, fields ...any) { + if !entry.handler.Enabled(entry.ctx, entry.level) { + return + } record := slog.NewRecord(entry.time, entry.level, message, entry.getCaller().PC) record.AddAttrs(entry.getExtra()...) record.AddAttrs(slog.Group("details", fields...)) @@ -125,6 +128,9 @@ func (entry *Entry) Log(message string, fields ...any) { } func (entry *Entry) Info(message string, fields ...any) { + if !entry.handler.Enabled(entry.ctx, slog.LevelInfo) { + return + } record := slog.NewRecord(entry.time, slog.LevelInfo, message, entry.getCaller().PC) record.AddAttrs(entry.getExtra()...) record.AddAttrs(slog.Group("details", fields...)) @@ -135,6 +141,9 @@ func (entry *Entry) Info(message string, fields ...any) { } func (entry *Entry) Infof(format string, args ...any) { + if !entry.handler.Enabled(entry.ctx, slog.LevelInfo) { + return + } message := fmt.Sprintf(format, args...) record := slog.NewRecord(entry.time, slog.LevelInfo, message, entry.getCaller().PC) record.AddAttrs(entry.getExtra()...) @@ -145,6 +154,9 @@ func (entry *Entry) Infof(format string, args ...any) { } func (entry *Entry) Error(message string, fields ...any) { + if !entry.handler.Enabled(entry.ctx, slog.LevelError) { + return + } record := slog.NewRecord(entry.time, slog.LevelError, message, entry.getCaller().PC) record.AddAttrs(entry.getExtra()...) record.AddAttrs(slog.Group("details", fields...)) @@ -155,6 +167,9 @@ func (entry *Entry) Error(message string, fields ...any) { } func (entry *Entry) Errorf(format string, args ...any) { + if !entry.handler.Enabled(entry.ctx, slog.LevelError) { + return + } message := fmt.Sprintf(format, args...) record := slog.NewRecord(entry.time, slog.LevelError, message, entry.getCaller().PC) record.AddAttrs(entry.getExtra()...) @@ -165,6 +180,9 @@ func (entry *Entry) Errorf(format string, args ...any) { } func (entry *Entry) Debug(message string, fields ...any) { + if !entry.handler.Enabled(entry.ctx, slog.LevelDebug) { + return + } record := slog.NewRecord(entry.time, slog.LevelDebug, message, entry.getCaller().PC) record.AddAttrs(entry.getExtra()...) record.AddAttrs(slog.Group("details", fields...)) @@ -175,6 +193,9 @@ func (entry *Entry) Debug(message string, fields ...any) { } func (entry *Entry) Debugf(format string, args ...any) { + if !entry.handler.Enabled(entry.ctx, slog.LevelDebug) { + return + } message := fmt.Sprintf(format, args...) record := slog.NewRecord(entry.time, slog.LevelDebug, message, entry.getCaller().PC) record.AddAttrs(entry.getExtra()...) @@ -185,6 +206,9 @@ func (entry *Entry) Debugf(format string, args ...any) { } func (entry *Entry) Warn(message string, fields ...any) { + if !entry.handler.Enabled(entry.ctx, slog.LevelWarn) { + return + } record := slog.NewRecord(entry.time, slog.LevelWarn, message, entry.getCaller().PC) record.AddAttrs(entry.getExtra()...) record.AddAttrs(slog.Group("details", fields...)) @@ -195,6 +219,9 @@ func (entry *Entry) Warn(message string, fields ...any) { } func (entry *Entry) Warnf(format string, args ...any) { + if !entry.handler.Enabled(entry.ctx, slog.LevelWarn) { + return + } message := fmt.Sprintf(format, args...) record := slog.NewRecord(entry.time, slog.LevelWarn, message, entry.getCaller().PC) record.AddAttrs(entry.getExtra()...) diff --git a/server/routes/middleware/logger.go b/server/routes/middleware/logger.go index 2823209..ce4fb8b 100644 --- a/server/routes/middleware/logger.go +++ b/server/routes/middleware/logger.go @@ -23,7 +23,7 @@ type ChiEntry struct { func (ch *ChiEntry) Write(status int, bytes int, header http.Header, elapsed time.Duration, extra interface{}) { elasedStr := formatDuration(elapsed) - message := fmt.Sprintf("%s %s %d %s", ch.request.Method, ch.request.URL.Path, status, elasedStr) + message := fmt.Sprintf("%s %s %d %s", ch.request.Method, ch.request.URL, status, elasedStr) requestLog := slog.Attr{Key: "request", Value: ch.extractRequestLog()} responseLog := slog.Group("response", "status", status, "headers", flatHeader(header), "bytes", bytes)