package logger import ( "context" "log/slog" "os" ) var ( // HookOutputEnabled writes hook output into logs if true HookOutputEnabled = false // RequestOutputEnabled writes HTTP request into logs if true RequestOutputEnabled = false ) // Configure logger func Configure(format, level string) { logLevel := slog.LevelDebug switch level { case "info": logLevel = slog.LevelInfo case "warn": logLevel = slog.LevelWarn case "error": logLevel = slog.LevelError } opts := slog.HandlerOptions{ Level: logLevel, AddSource: logLevel == slog.LevelDebug, } var logger *slog.Logger if format == "json" { logger = slog.New(slog.NewJSONHandler(os.Stdout, &opts)) } else { logger = slog.New(slog.NewTextHandler(os.Stdout, &opts)) } slog.SetDefault(logger) } // LogIf writ log on condition func LogIf(condition bool, level slog.Level, msg string, args ...any) { if condition { slog.Log(context.Background(), level, msg, args...) } }