feat(logger): Log levels

This commit is contained in:
Nicolai Ort 2024-12-17 15:45:40 +01:00
parent a2e94f715b
commit 94b766f106
Signed by: niggl
GPG Key ID: 13AFA55AF62F269F
3 changed files with 39 additions and 8 deletions

1
.env
View File

@ -1,3 +1,4 @@
LOGLEVEL=debug
PORT=3000
PRODUCION=false
APIKEY=lfk

45
main.go
View File

@ -3,6 +3,8 @@ package main
import (
"crypto/sha256"
"crypto/subtle"
"os"
"strings"
"git.odit.services/lfk/document-server/docs" // Correct import path for docs
"git.odit.services/lfk/document-server/handlers"
@ -16,6 +18,7 @@ import (
"github.com/redis/go-redis/v9"
"github.com/spf13/viper"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
var (
@ -35,7 +38,8 @@ func validateAPIKey(c *fiber.Ctx, key string) (bool, error) {
func loadEnv() error {
viper.SetDefault("PRODUCION", true)
viper.SetDefault("LOGLEVEL", "INFO")
viper.SetDefault("PRODUCION", false)
viper.SetDefault("PORT", "3000")
viper.SetDefault("APIKEY", "lfk")
viper.SetDefault("EVENTNAME", "Demo Event")
@ -67,7 +71,32 @@ func loadEnv() error {
return err
}
logger.Infow("Loaded config", config)
logger.Infow("Loaded config", "config", &config)
return nil
}
func initLogger() error {
logLevel := os.Getenv("LOGLEVEL")
if logLevel == "" {
logLevel = "INFO"
}
var zapLogLevel zapcore.Level
err := zapLogLevel.UnmarshalText([]byte(strings.ToLower(logLevel)))
if err != nil {
zapLogLevel = zapcore.InfoLevel
}
zapConfig := zap.NewProductionConfig()
zapConfig.Level = zap.NewAtomicLevelAt(zapLogLevel)
zapLogger, err := zapConfig.Build()
if err != nil {
return err
}
defer zapLogger.Sync()
logger = zapLogger.Sugar()
return nil
}
@ -85,12 +114,12 @@ func loadEnv() error {
func main() {
// Init the logger
zapLogger, _ := zap.NewProduction()
defer zapLogger.Sync()
logger = zapLogger.Sugar()
logger.Info("Logger initialized")
err := initLogger()
if err != nil {
return
}
err := loadEnv()
err = loadEnv()
if err != nil {
logger.Error(err)
return
@ -98,7 +127,7 @@ func main() {
var redisClient *redis.Client
if config.RedisAddr != "" {
logger.Infow("Using redis", config.RedisAddr)
logger.Infow("Using redis", "redisAddr", config.RedisAddr)
redisClient = redis.NewClient(&redis.Options{
Addr: config.RedisAddr,
})

View File

@ -1,6 +1,7 @@
package models
type Config struct {
LogLevel string `mapstructure:"LOGLEVEL"`
Prod bool `mapstructure:"PRODUCION"`
Port string `mapstructure:"PORT"`
APIKey string `mapstructure:"APIKEY"`