ADD: added dockerfiles and a logger for the backend

This commit is contained in:
hwinkel
2025-12-15 13:30:41 +01:00
parent 7ec17e1e8b
commit 435ad8e6e6
12 changed files with 183 additions and 19 deletions

View 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)
}