ADD: added dockerfiles and a logger for the backend
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
"log"
|
||||
"studia/internal/config"
|
||||
"studia/internal/logger"
|
||||
|
||||
_ "github.com/lib/pq" // Import the PostgreSQL driver
|
||||
)
|
||||
@@ -22,7 +23,7 @@ func New(cfg *config.Config) *sql.DB {
|
||||
WHERE table_schema = 'public'
|
||||
`)
|
||||
if err != nil {
|
||||
log.Println("failed to query existing tables:", err)
|
||||
logger.Log.Error().Err(err).Msg("Failed to query existing tables")
|
||||
}
|
||||
|
||||
missing := checkTables(expectedTables, existing)
|
||||
@@ -32,7 +33,7 @@ func New(cfg *config.Config) *sql.DB {
|
||||
// Here you would normally run migrations to create the missing tables
|
||||
// For simplicity, we just log the missing tables
|
||||
} else {
|
||||
log.Println("All expected tables are present.")
|
||||
logger.Log.Info().Msg("All expected tables are present.")
|
||||
}
|
||||
|
||||
return db
|
||||
@@ -41,7 +42,7 @@ func New(cfg *config.Config) *sql.DB {
|
||||
func setupDatabase(cfg *config.Config) *sql.DB {
|
||||
// Database connection setup logic here
|
||||
|
||||
log.Println(cfg)
|
||||
logger.Log.Println(cfg)
|
||||
switch cfg.DatabaseDriver {
|
||||
case "postgres":
|
||||
// Setup Postgres connection
|
||||
|
||||
46
backend/internal/logger/logger.go
Normal file
46
backend/internal/logger/logger.go
Normal file
@@ -0,0 +1,46 @@
|
||||
// internal/logger/logger.go
|
||||
package logger
|
||||
|
||||
import (
|
||||
"io"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/rs/zerolog"
|
||||
)
|
||||
|
||||
var Log zerolog.Logger
|
||||
|
||||
// Init initializes the global logger.
|
||||
// It configures console output, timestamps, and log level from environment.
|
||||
func Init() {
|
||||
// Determine output writer
|
||||
consoleWriter := zerolog.ConsoleWriter{
|
||||
Out: os.Stdout,
|
||||
TimeFormat: time.RFC3339,
|
||||
}
|
||||
|
||||
// You can switch to JSON output by replacing with os.Stdout directly:
|
||||
// writer := os.Stdout
|
||||
|
||||
// Create the global logger
|
||||
Log = zerolog.New(consoleWriter).
|
||||
Level(zerolog.TraceLevel).With().Caller().Logger().
|
||||
With().
|
||||
Timestamp().
|
||||
Logger()
|
||||
|
||||
// Set log level from environment variable, default to InfoLevel
|
||||
level := zerolog.InfoLevel
|
||||
if lvlStr, ok := os.LookupEnv("LOG_LEVEL"); ok {
|
||||
if parsedLevel, err := zerolog.ParseLevel(lvlStr); err == nil {
|
||||
level = parsedLevel
|
||||
}
|
||||
}
|
||||
zerolog.SetGlobalLevel(level)
|
||||
}
|
||||
|
||||
// SetOutput allows changing output (e.g., to a file)
|
||||
func SetOutput(w io.Writer) {
|
||||
Log = Log.Output(w)
|
||||
}
|
||||
@@ -1,12 +1,10 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"studia/internal/auth"
|
||||
"studia/internal/config"
|
||||
"studia/internal/database"
|
||||
"studia/internal/logger"
|
||||
"time"
|
||||
|
||||
"github.com/gin-contrib/cors"
|
||||
@@ -21,18 +19,18 @@ func StartServer(cfg *config.Config) {
|
||||
|
||||
// 2. CORS-Konfiguration
|
||||
// Lese die Frontend-URL aus den Umgebungsvariablen
|
||||
frontendURL := os.Getenv("FRONTEND_URL")
|
||||
// frontendURL := os.Getenv("FRONTEND_URL")
|
||||
|
||||
// Lokaler Fallback (wichtig für die Entwicklung)
|
||||
allowedOrigins := []string{
|
||||
"http://localhost:5173", // Gängiger Vite-Dev-Port
|
||||
}
|
||||
|
||||
if frontendURL != "" {
|
||||
allowedOrigins = append(allowedOrigins, frontendURL)
|
||||
fmt.Printf("CORS: Erlaubte Produktiv-URL hinzugefügt: %s\n", frontendURL)
|
||||
if cfg.FrontendURL != "" {
|
||||
allowedOrigins = append(allowedOrigins, cfg.FrontendURL)
|
||||
logger.Log.Printf("CORS: Erlaubte Produktiv-URL hinzugefügt: %s\n", cfg.FrontendURL)
|
||||
} else {
|
||||
log.Println("ACHTUNG: FRONTEND_URL fehlt in den Umgebungsvariablen. Nur lokale URLs erlaubt.")
|
||||
logger.Log.Error().Msg("ACHTUNG: FRONTEND_URL fehlt in den Umgebungsvariablen. Nur lokale URLs erlaubt.")
|
||||
}
|
||||
|
||||
// CORS
|
||||
|
||||
Reference in New Issue
Block a user