feat: add configurable loglevel

This commit is contained in:
2026-04-22 22:29:58 +02:00
parent d6df67b643
commit f796ea229f
7 changed files with 38 additions and 17 deletions
+1 -1
View File
@@ -29,7 +29,7 @@ func KickoffApi(logger *slog.Logger, env utility.Environment, db *gorm.DB) {
// r := gin.Default()
// JSON logger: https://gin-gonic.com/en/docs/logging/structured-logging/
r := gin.New()
r.Use(slogMiddleware(logger))
r.Use(slogGinMiddleware(logger))
r.Use(gin.Recovery())
api := r.Group("/api")
+2 -2
View File
@@ -7,7 +7,7 @@ import (
"github.com/gin-gonic/gin"
)
func slogMiddleware(logger *slog.Logger) gin.HandlerFunc {
func slogGinMiddleware(logger *slog.Logger) gin.HandlerFunc {
return func(c *gin.Context) {
start := time.Now()
path := c.Request.URL.Path
@@ -15,7 +15,7 @@ func slogMiddleware(logger *slog.Logger) gin.HandlerFunc {
c.Next()
logger.Info("request",
logger.Debug("request",
slog.String("method", c.Request.Method),
slog.String("path", path),
slog.String("query", query),
+1
View File
@@ -72,6 +72,7 @@ func spawnFileRoutes(file *gin.RouterGroup, env utility.Environment, db *gorm.DB
return
}
slog.Info("saved file to local filesystem and database")
c.JSON(http.StatusCreated, RespObj{
Msg: "file has succesfully been uploaded",
})
+1 -1
View File
@@ -23,7 +23,7 @@ func CategorizeMediaType(ext string) (MediaType, bool) {
case ".pptx", ".ppt", ".key", ".odp":
return Presentation, true
default:
slog.Debug("marking file as invalid undefined extension")
slog.Debug("marking file as invalid due to its undefined extension")
return "", false
}
}
+2 -2
View File
@@ -45,7 +45,7 @@ func databaseGather(db *gorm.DB) (map[string]File, error) {
}
func watchdog(env utility.Environment, db *gorm.DB) {
slog.Info("performing the watchdog cycle")
slog.Debug("performing the watchdog cycle")
fsSet, err := filesystemGather(env)
if err != nil {
@@ -102,7 +102,7 @@ func watchdog(env utility.Environment, db *gorm.DB) {
case "strict":
err := utility.RemoveFile(fp)
if err != nil {
slog.Warn("failed to remove local file from the filesystem", "error", err)
slog.Error("failed to remove local file from the filesystem", "error", err)
}
case "dry":
slog.Debug("dry mode enabled, not purging", "filepath", fp)
+22 -5
View File
@@ -6,15 +6,19 @@ import (
"path/filepath"
"slices"
"strconv"
"strings"
)
type Environment struct {
Version string
Codename string
Version string
Codename string
LogLevel string
DataDirectory string
ContentDirectory string
Hostname string
Port int
WatchdogEnabled bool
WatchdogInterval int
WatchdogSyncMode string
@@ -33,7 +37,6 @@ func safeStringGrab(key, fallback string) string {
if v, ok := os.LookupEnv(key); ok {
return v
}
slog.Debug("using fallback", "key", key, "fallback", fallback)
return fallback
}
@@ -43,7 +46,6 @@ func safeIntGrab(key string, fallback int) int {
return i
}
}
slog.Debug("using fallback", "key", key, "fallback", fallback)
return fallback
}
@@ -62,7 +64,6 @@ func safeSyncModeGrab(key, fallback string) string {
return v
}
}
slog.Debug("using fallback", "key", key, "fallback", fallback)
return fallback
}
@@ -79,6 +80,7 @@ func GrabEnvironment() Environment {
// Basic server configuration
Version: safeStringGrab("VERSION", "0.0.1"),
Codename: safeStringGrab("CODENAME", "Magical Anomaly"),
LogLevel: safeStringGrab("LOG_LEVEL", "info"),
// GIN API configuration
DataDirectory: safeStringGrab("DATA_DIR", fbBase),
@@ -96,3 +98,18 @@ func GrabEnvironment() Environment {
WatchdogSyncMode: safeStringGrab("WATCHDOG_SYNC_MODE", "strict"),
}
}
func ParseSlogLevel(s string) slog.Level {
switch strings.ToLower(s) {
case "debug":
return slog.LevelDebug
case "warn", "warning":
return slog.LevelWarn
case "error":
return slog.LevelError
case "info":
fallthrough
default:
return slog.LevelInfo
}
}