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 PORT=3000
PRODUCION=false PRODUCION=false
APIKEY=lfk APIKEY=lfk

45
main.go
View File

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

View File

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