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
+4 -3
View File
@@ -5,9 +5,10 @@ import (
"encoding/json"
"fmt"
"io/fs"
"log"
"log/slog"
"net"
"net/http"
"os"
"strings"
"github.com/go-chi/chi/v5"
@@ -48,7 +49,7 @@ func nadjiLokalneAdrese() []string {
func PokreniSetup(fsys fs.FS) {
port := NadjiSlobodanPort()
if port == 0 {
log.Fatal("ntech: setup: nije pronađen nijedan slobodan port")
slog.Error("setup: nije pronađen nijedan slobodan port"); os.Exit(1)
}
gotov := make(chan struct{})
@@ -102,7 +103,7 @@ func PokreniSetup(fsys fs.FS) {
go func() {
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
log.Fatalf("ntech: setup server: %v", err)
slog.Error("setup server", "error", err); os.Exit(1)
}
}()