refactor(log): prelazak sa log na log/slog (strukturisano logovanje)

Uveden podrazumevani slog logger u main.go (podesiLog): JSON u produkciji,
tekst u razvoju, nivo Info. Svih ~70 poziva log.Printf/Println/Fatalf zamenjeno
slog.Error/Warn/Info: greška se prosleđuje kao atribut "error", informativne
vrednosti kao imenovani atributi (port, broj, putanja...), Fatalf -> Error +
os.Exit(1). Upozorenja (inicijalizacija/čišćenje dozvola, migracija kolone) idu
kao slog.Warn.

Auth log (internal/auth/log.go) namerno NIJE diran — ostaje zaseban *log.Logger
u fail2ban formatu. (slog.SetDefault usput preusmerava i standardni log paket.)
This commit is contained in:
2026-06-12 22:33:42 +02:00
parent 47fab264b5
commit b77a8857e6
12 changed files with 99 additions and 84 deletions
+3 -3
View File
@@ -1,7 +1,7 @@
package handler
import (
"log"
"log/slog"
"net/http"
"strconv"
"strings"
@@ -116,7 +116,7 @@ func (h *Handler) SacuvajPodsetnik(w http.ResponseWriter, r *http.Request) {
}
if _, err := h.PodsetnikRepo.Kreiraj(r.Context(), &podsetnik); err != nil {
log.Printf("greška pri čuvanju podsetnika: %v", err)
slog.Error("greška pri čuvanju podsetnika", "error", err)
h.prikaziGreskuPodsetnika(w, r, k, podsetnik, "Došlo je do greške pri čuvanju. Pokušajte ponovo.", false)
return
}
@@ -187,7 +187,7 @@ func (h *Handler) SacuvajIzmenePodsetnika(w http.ResponseWriter, r *http.Request
}
if err := h.PodsetnikRepo.Izmeni(r.Context(), &podsetnik); err != nil {
log.Printf("greška pri čuvanju izmene podsetnika: %v", err)
slog.Error("greška pri čuvanju izmene podsetnika", "error", err)
h.prikaziGreskuPodsetnika(w, r, k, podsetnik, "Došlo je do greške pri čuvanju. Pokušajte ponovo.", true)
return
}