Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion api/config/manager/manager.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ spec:
image: controller:latest
imagePullPolicy: Always
name: manager-config
# env:
# env:
# - name: IBMCLOUD_APIKEY
# valueFrom:
# secretKeyRef:
Expand Down
40 changes: 39 additions & 1 deletion api/internal/pkg/pac-go-server/logger/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ package log

import (
"log"
"os"
"strings"
"time"

"go.uber.org/zap"
Expand All @@ -11,13 +13,49 @@ import (
var Logger *zap.Logger

func init() {
Logger = InitLogger()
}

// InitLogger initializes the logger with configurable log level from environment
func InitLogger() *zap.Logger {
// Get log level from environment variable, default to "info"
logLevel := strings.ToLower(os.Getenv("LOG_LEVEL"))
if logLevel == "" {
logLevel = "info"
}

// Parse log level
var level zapcore.Level
switch logLevel {
case "debug":
level = zapcore.DebugLevel
case "info":
level = zapcore.InfoLevel
case "warn", "warning":
level = zapcore.WarnLevel
case "error":
level = zapcore.ErrorLevel
case "fatal":
level = zapcore.FatalLevel
default:
level = zapcore.InfoLevel
log.Printf("Invalid LOG_LEVEL '%s', defaulting to 'info'\n", logLevel)
}

// Create logger configuration
cfg := zap.NewProductionConfig()
cfg.Level = zap.NewAtomicLevelAt(level)
cfg.EncoderConfig.EncodeTime = zapcore.TimeEncoderOfLayout(time.RFC3339)

logger, err := cfg.Build()
if err != nil {
log.Println("Error while initializing logger.", err)
// Return a no-op logger as fallback
return zap.NewNop()
}
Logger = logger

logger.Info("Logger initialized", zap.String("level", logLevel))
return logger
}

func GetLogger() *zap.Logger {
Expand Down
19 changes: 19 additions & 0 deletions api/internal/pkg/pac-go-server/router/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package router
import (
"net/http"
"os"
"strings"

"github.com/Nerzal/gocloak/v13"
"github.com/gin-gonic/gin"
Expand All @@ -29,6 +30,24 @@ var (
func init() {
client = gocloak.NewClient(hostname)
internalClient = keycloak.NewGoCloakClient(hostname)

// Set GIN mode based on LOG_LEVEL or GIN_MODE environment variable
setGinMode()
}

// setGinMode configures GIN's logging mode based on environment variables
func setGinMode() {
ginMode := os.Getenv("GIN_MODE")
if ginMode == "" {
// If GIN_MODE not set, derive from LOG_LEVEL
logLevel := strings.ToLower(os.Getenv("LOG_LEVEL"))
if logLevel == "debug" {
ginMode = gin.DebugMode
} else {
ginMode = gin.ReleaseMode
}
}
gin.SetMode(ginMode)
}

func CreateRouter() *gin.Engine {
Expand Down
Loading