Replace zap with slog
This commit is contained in:
@@ -21,7 +21,7 @@ func (s *Server) LoggingMiddleware(next http.Handler) http.Handler {
|
||||
if s.cfg.AccessLogIgnoreMetrics && r.URL.Path == "/metrics" && ww.Status() == http.StatusOK {
|
||||
return
|
||||
}
|
||||
s.AccessLogger.Infow(r.Method,
|
||||
s.AccessLogger.Info(r.Method,
|
||||
"path", r.URL.Path,
|
||||
"status", ww.Status(),
|
||||
"written", ww.BytesWritten(),
|
||||
|
@@ -6,6 +6,7 @@ import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"log/slog"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"sync"
|
||||
@@ -20,7 +21,6 @@ import (
|
||||
"github.com/go-chi/chi/v5/middleware"
|
||||
"github.com/google/uuid"
|
||||
"github.com/prometheus/client_golang/prometheus/promhttp"
|
||||
"go.uber.org/zap"
|
||||
"golang.org/x/crypto/acme/autocert"
|
||||
)
|
||||
|
||||
@@ -35,8 +35,8 @@ type Server struct {
|
||||
honeypotServer *ssh.HoneypotServer
|
||||
store store.LoginAttemptStore
|
||||
|
||||
ServerLogger *zap.SugaredLogger
|
||||
AccessLogger *zap.SugaredLogger
|
||||
ServerLogger *slog.Logger
|
||||
AccessLogger *slog.Logger
|
||||
|
||||
attemptListenersLock sync.RWMutex
|
||||
attemptListeners map[string]chan models.LoginAttempt
|
||||
@@ -44,9 +44,10 @@ type Server struct {
|
||||
}
|
||||
|
||||
func NewServer(cfg config.FrontendConfig, hs *ssh.HoneypotServer, store store.LoginAttemptStore) *Server {
|
||||
discardLogger := slog.New(slog.NewTextHandler(io.Discard, nil))
|
||||
s := &Server{
|
||||
ServerLogger: zap.NewNop().Sugar(),
|
||||
AccessLogger: zap.NewNop().Sugar(),
|
||||
ServerLogger: discardLogger,
|
||||
AccessLogger: discardLogger,
|
||||
store: store,
|
||||
cfg: cfg,
|
||||
}
|
||||
@@ -125,7 +126,7 @@ func (s *Server) StartServe() error {
|
||||
s.ServerLogger.Debug("Starting HTTP redirect server")
|
||||
go func() {
|
||||
if err := s.httpRedirectServer.ListenAndServe(); err != nil && err != http.ErrServerClosed {
|
||||
s.ServerLogger.Warnw("HTTP redirect server returned error", "error", err)
|
||||
s.ServerLogger.Warn("HTTP redirect server returned error", "error", err)
|
||||
}
|
||||
}()
|
||||
}
|
||||
@@ -174,7 +175,7 @@ func (s *Server) HandlerAttemptStream(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
_, err = io.WriteString(w, fmt.Sprintf("data: %s\n\n", string(data)))
|
||||
if err != nil {
|
||||
s.ServerLogger.Warnw("Error writing event", "error", err)
|
||||
s.ServerLogger.Warn("Error writing event", "error", err)
|
||||
}
|
||||
flusher.Flush()
|
||||
ticker.Reset(streamKeepAliveDuration)
|
||||
@@ -184,7 +185,7 @@ func (s *Server) HandlerAttemptStream(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
case <-ticker.C:
|
||||
if _, err := io.WriteString(w, ": keep-alive\n\n"); err != nil {
|
||||
s.ServerLogger.Warnw("Error writing event", "error", err)
|
||||
s.ServerLogger.Warn("Error writing event", "error", err)
|
||||
}
|
||||
flusher.Flush()
|
||||
}
|
||||
@@ -207,14 +208,14 @@ func (s *Server) HandlerStats(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
stats, err := s.store.Stats(statType, limit)
|
||||
if err != nil {
|
||||
s.ServerLogger.Warnw("Error fetching stats", "error", err)
|
||||
s.ServerLogger.Warn("Error fetching stats", "error", err)
|
||||
s.WriteAPIError(w, r, http.StatusInternalServerError, "Error fetching stats")
|
||||
return
|
||||
}
|
||||
|
||||
encoder := json.NewEncoder(w)
|
||||
if err := encoder.Encode(stats); err != nil {
|
||||
s.ServerLogger.Debugf("Error encoding or writing response", "remote_ip", r.RemoteAddr, "error", err)
|
||||
s.ServerLogger.Debug("Error encoding or writing response", "remote_ip", r.RemoteAddr, "error", err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -241,13 +242,13 @@ func (s *Server) HandlerQuery(w http.ResponseWriter, r *http.Request) {
|
||||
userResults, err := s.store.Query(uq)
|
||||
if err != nil {
|
||||
s.WriteAPIError(w, r, http.StatusInternalServerError, "Unable to perform query")
|
||||
s.ServerLogger.Warnw("Error performing query", "error", err)
|
||||
s.ServerLogger.Warn("Error performing query", "error", err)
|
||||
return
|
||||
}
|
||||
passwordResults, err := s.store.Query(pq)
|
||||
if err != nil {
|
||||
s.WriteAPIError(w, r, http.StatusInternalServerError, "Unable to perform query")
|
||||
s.ServerLogger.Warnw("Error performing query", "error", err)
|
||||
s.ServerLogger.Warn("Error performing query", "error", err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -263,7 +264,7 @@ func (s *Server) HandlerQuery(w http.ResponseWriter, r *http.Request) {
|
||||
queryResults, err := s.store.Query(aq)
|
||||
if err != nil {
|
||||
s.WriteAPIError(w, r, http.StatusInternalServerError, "Unable to perform query")
|
||||
s.ServerLogger.Warnw("Error performing query", "error", err)
|
||||
s.ServerLogger.Warn("Error performing query", "error", err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -272,7 +273,7 @@ func (s *Server) HandlerQuery(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
encoder := json.NewEncoder(w)
|
||||
if err := encoder.Encode(&results); err != nil {
|
||||
s.ServerLogger.Warnw("Error writing query results", "error", err)
|
||||
s.ServerLogger.Warn("Error writing query results", "error", err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -294,6 +295,6 @@ func (s *Server) WriteAPIError(w http.ResponseWriter, r *http.Request, status in
|
||||
apiErr := APIErrorResponse{Error: message}
|
||||
w.WriteHeader(status)
|
||||
if err := encoder.Encode(&apiErr); err != nil {
|
||||
s.ServerLogger.Debugf("Error encoding or writing error response", "remote_ip", r.RemoteAddr, "error", err)
|
||||
s.ServerLogger.Debug("Error encoding or writing error response", "remote_ip", r.RemoteAddr, "error", err)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user