changeAPIv1/cmd/converter/main.go
netscrawler c99f477e35 v0.0.6
2024-06-30 20:44:53 +03:00

62 lines
1.2 KiB
Go

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)
}