Add Zap logging framework with structured logging for Echo and Grafana

This commit is contained in:
2026-05-20 22:29:45 +02:00
parent 82252ce1ff
commit 37909139de
7 changed files with 64 additions and 37 deletions
+26 -8
View File
@@ -2,12 +2,15 @@ package server
import (
"fmt"
"log"
"music-server/internal/db"
"net/http"
"os"
"strconv"
"time"
"music-server/internal/db"
"music-server/internal/logging"
"net/http"
"go.uber.org/zap"
)
type Server struct {
@@ -22,24 +25,39 @@ var (
password = os.Getenv("DB_PASSWORD")
musicPath = os.Getenv("MUSIC_PATH")
charactersPath = os.Getenv("CHARACTERS_PATH")
logLevel = os.Getenv("LOG_LEVEL")
logJSON = os.Getenv("LOG_JSON") == "true"
)
func NewServer() *http.Server {
// Initialize logger
if logLevel == "" {
logLevel = "info"
}
logging.Init(logLevel, logJSON)
logger := logging.GetLogger()
port, _ := strconv.Atoi(os.Getenv("PORT"))
NewServer := &Server{
port: port,
}
fmt.Printf("host: %s, dbPort: %v, username: %s, password: %s, dbName: %s\n",
host, dbPort, username, password, dbName)
logger.Info("Starting server",
zap.String("host", host),
zap.String("dbPort", dbPort),
zap.String("username", username),
zap.String("dbName", dbName),
)
log.Printf("musicPath: %s\n", musicPath)
log.Printf("charactersPath: %s\n", charactersPath)
logger.Info("Paths",
zap.String("musicPath", musicPath),
zap.String("charactersPath", charactersPath),
)
//conf.SetupDb()
if host == "" || dbPort == "" || username == "" || password == "" || dbName == "" || musicPath == "" || charactersPath == "" {
log.Fatal("Invalid settings")
logging.GetLogger().Fatal("Invalid settings - missing required environment variables")
}
db.Migrate_db(host, dbPort, username, password, dbName)