package logger

import (
	"log/slog"
	"os"
)

func New(environment string, structured ...bool) *slog.Logger {
	useJSON := environment == "production"
	if len(structured) > 0 {
		useJSON = structured[0]
	}
	opts := &slog.HandlerOptions{
		AddSource: environment != "production",
		Level:     slog.LevelInfo,
	}

	if useJSON {
		return slog.New(NewRedactingHandler(slog.NewJSONHandler(os.Stdout, opts)))
	}

	return slog.New(NewRedactingHandler(slog.NewTextHandler(os.Stdout, opts)))
}
