package log

import (
	"go.uber.org/zap"
	"go.uber.org/zap/zapcore"

	"git.fjla.uk/owlboard/timetable-mgr/helpers"
)

var Msg *zap.Logger

func init() {
	var err error

	// Create a custom configuration with a human-readable "Console" encoder
	config := zap.NewDevelopmentConfig()
	config.EncoderConfig.EncodeLevel = zapcore.CapitalColorLevelEncoder // Adds color to log levels

	// Determine the log level based on the runtime mode
	logLevel := zapcore.DebugLevel
	if helpers.Runtime == "production" {
		logLevel = zapcore.InfoLevel
	}

	// Set the log level
	config.Level = zap.NewAtomicLevelAt(logLevel)

	Msg, err = config.Build() // Potential source of the error
	if err != nil {
		panic("Failed to initialize logger: " + err.Error())
	}

	// Log the selected log level (optional, can be helpful for debugging)
	Msg.Info("Log level set to: " + logLevel.String())
}
