Add more error handling and mutex guards

This commit is contained in:
Pijus Kamandulis
2025-01-27 21:09:37 +02:00
parent d6b816b55a
commit 125f10d8a2
8 changed files with 62 additions and 26 deletions

View File

@@ -58,15 +58,15 @@ func (c *ServerConfig) PopulateCalculatedFields() {
switch c.LogLevel {
case "debug":
logger.LogLevel = logger.LogLevelDebug
logger.SetLogLevel(logger.LogLevelDebug)
case "info":
logger.LogLevel = logger.LogLevelInfo
logger.SetLogLevel(logger.LogLevelInfo)
case "error":
logger.LogLevel = logger.LogLevelError
logger.SetLogLevel(logger.LogLevelError)
case "silent":
logger.LogLevel = logger.LogLevelSilent
logger.SetLogLevel(logger.LogLevelSilent)
default:
logger.LogLevel = logger.LogLevelInfo
logger.SetLogLevel(logger.LogLevelInfo)
}
}

View File

@@ -4,6 +4,7 @@ import (
"context"
"fmt"
"net/http"
"sync"
"github.com/gin-gonic/gin"
"github.com/pikami/cosmium/api/handlers"
@@ -13,15 +14,19 @@ import (
tlsprovider "github.com/pikami/cosmium/internal/tls_provider"
)
var ginMux sync.Mutex
func (s *ApiServer) CreateRouter(repository *repositories.DataRepository) {
routeHandlers := handlers.NewHandlers(repository, s.config)
ginMux.Lock()
gin.DefaultWriter = logger.InfoWriter()
gin.DefaultErrorWriter = logger.ErrorWriter()
if s.config.LogLevel != "debug" {
gin.SetMode(gin.ReleaseMode)
}
ginMux.Unlock()
router := gin.Default(func(e *gin.Engine) {
e.RedirectTrailingSlash = false