package main import ( "converter/internal/app" "converter/internal/config" "converter/internal/lib/logger/handlers/slogpretty" "fmt" "log/slog" "os" ) const ( envlocal = "local" envdev = "dev" envprod = "prod" ) func main() { cfg := config.MustLoad() fmt.Println(cfg) log := setupLogger(cfg.Env) log.Info("starting application", slog.Any("cfg", cfg)) applicaton := app.New(log, cfg.GRPC.Port, cfg.TokenTTL) applicaton.GRPCSrv.MustRun() // TODO: инициализировать приложение app // TODO: запустить gRPC сервер приложения } func setupLogger(env string) *slog.Logger { var log *slog.Logger switch env { case envlocal: log = setupPrettySlog() case envdev: log = slog.New( slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelDebug}), ) case envprod: log = slog.New( slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelInfo}), ) } return log } func setupPrettySlog() *slog.Logger { opts := slogpretty.PrettyHandlerOptions{ SlogOpts: &slog.HandlerOptions{ Level: slog.LevelDebug, }, } handler := opts.NewPrettyHandler(os.Stdout) return slog.New(handler) }