From 028c084cddf635d49a0942ca07b2fa76183c7f4d Mon Sep 17 00:00:00 2001 From: William P Date: Sun, 18 May 2025 15:08:17 -0400 Subject: [PATCH] start logging -- also clarified env checks --- api/api.go | 2 +- db/scylla.go | 3 ++- main.go | 33 +++++++++++++++++++++++++++------ 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/api/api.go b/api/api.go index 2124bf9..99e8736 100644 --- a/api/api.go +++ b/api/api.go @@ -24,7 +24,7 @@ func Start() { r := chi.NewRouter() r.Use(middleware.RequestID) - r.Use(middleware.Logger) + //r.Use(middleware.Logger) r.Use(middleware.Recoverer) r.Use(middleware.URLFormat) r.Use(render.SetContentType(render.ContentTypeJSON)) diff --git a/db/scylla.go b/db/scylla.go index 566f840..f296988 100644 --- a/db/scylla.go +++ b/db/scylla.go @@ -2,6 +2,7 @@ package db import ( "log" + "log/slog" "os" "github.com/gocql/gocql" @@ -19,7 +20,7 @@ func InitScyllaDB() { log.Fatalf("Failed to connect to ScyllaDB: %v", err) } Session = session - log.Println("Connected to ScyllaDB") + slog.Info("Connected to ScyllaDB") } func CloseScyllaDB() { diff --git a/main.go b/main.go index 8c986e1..1e33613 100644 --- a/main.go +++ b/main.go @@ -1,22 +1,43 @@ package main import ( - "log" + "log/slog" "os" "git.dubyatp.xyz/chat-api-server/api" "github.com/joho/godotenv" ) +func checkEnvVars(keys []string) (bool, []string) { + var missing []string + for _, key := range keys { + if _, ok := os.LookupEnv(key); !ok { + missing = append(missing, key) + } + } + return len(missing) == 0, missing +} + func main() { + // Start logger + logger := slog.New(slog.NewJSONHandler(os.Stdout, nil)) + slog.SetDefault(logger) + + requiredEnvVars := []string{"SCYLLA_CLUSTER", "SCYLLA_KEYSPACE"} + // Initialize dotenv file err := godotenv.Load() if err != nil { - // Check if environment variables are defined by OS before erroring out - _, exists := os.LookupEnv("SCYLLA_CLUSTER") - if !exists { - log.Fatal("Required environment variables are not added, and no .env file was found") - } + logger.Info("No .env file loaded, will try OS environment variables") } + + // Check if environment variables were defined by the OS before erroring out + exists, missingVars := checkEnvVars(requiredEnvVars) + if !exists { + slog.Error("Missing environment variables", "missing", missingVars) + os.Exit(1) + } + + slog.Info("Starting the API Server...") api.Start() }