Refactored project structure

This commit is contained in:
2025-10-16 22:45:31 +02:00
parent cf74cce51c
commit d13ea9fc27
13 changed files with 1156 additions and 1023 deletions

View File

@@ -0,0 +1,38 @@
package main
import (
"log/slog"
"os"
"path/filepath"
"strings"
)
func setupDefaultLogger() {
if strings.ToLower(os.Getenv("PROD")) == "true" {
options := &slog.HandlerOptions{
Level: slog.LevelInfo,
}
customLogger := slog.New(slog.NewTextHandler(os.Stdout, options))
slog.SetDefault(customLogger)
slog.Info("Production logger initialized", slog.Group("app", "version", Version, "build_time", BuildTime))
return
}
sourceFileName := func(groups []string, a slog.Attr) slog.Attr {
// Remove the directory and function from the source's filename.
if a.Key == slog.SourceKey {
source := a.Value.Any().(*slog.Source)
source.File = filepath.Base(source.File)
source.Function = ""
}
return a
}
options := &slog.HandlerOptions{
Level: slog.LevelDebug,
AddSource: true,
ReplaceAttr: sourceFileName,
}
customLogger := slog.New(slog.NewTextHandler(os.Stdout, options))
slog.SetDefault(customLogger)
slog.Info("Development logger initialized", slog.Group("app", "version", Version, "build_time", BuildTime))
}