refactor: made logger a dependency

This commit is contained in:
2025-06-20 16:52:52 +03:00
parent 7ad1336c88
commit 535d3ff939
3 changed files with 39 additions and 13 deletions

View File

@@ -13,18 +13,21 @@
package main package main
import ( import (
"time"
"net/http"
"context" "context"
"fmt"
"net/http"
"time"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"go.uber.org/fx" "go.uber.org/fx"
"easywish/config" "easywish/config"
docs "easywish/docs"
"easywish/internal/controllers" "easywish/internal/controllers"
"easywish/internal/logger" "easywish/internal/logger"
"easywish/internal/routes" "easywish/internal/routes"
"easywish/internal/services" "easywish/internal/services"
docs "easywish/docs"
swaggerfiles "github.com/swaggo/files" swaggerfiles "github.com/swaggo/files"
ginSwagger "github.com/swaggo/gin-swagger" ginSwagger "github.com/swaggo/gin-swagger"
) )
@@ -35,18 +38,15 @@ func main() {
panic(err) panic(err)
} }
defer logger.Sync()
fx.New( fx.New(
services.Module,
fx.Provide( fx.Provide(
logger.NewLogger,
gin.Default, gin.Default,
controllers.NewAuthController,
controllers.NewServiceController,
), ),
services.Module,
controllers.Module,
routes.Module, routes.Module,
fx.Invoke(func(lc fx.Lifecycle, router *gin.Engine) { fx.Invoke(func(lc fx.Lifecycle, router *gin.Engine) {
// Swagger // Swagger
@@ -54,7 +54,7 @@ func main() {
router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerfiles.Handler)) router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerfiles.Handler))
server := &http.Server{ server := &http.Server{
Addr: ":8080", Addr: fmt.Sprintf(":%s", config.GetConfig().Port),
Handler: router, Handler: router,
} }

View File

@@ -0,0 +1,12 @@
package controllers
import (
"go.uber.org/fx"
)
var Module = fx.Module("controllers",
fx.Provide(
NewServiceController,
NewAuthController,
),
)

View File

@@ -1,17 +1,31 @@
package logger package logger
import ( import (
"sync" "sync"
"go.uber.org/zap"
"easywish/config" "easywish/config"
"go.uber.org/zap"
) )
type Logger interface {
Get() *zap.Logger
Sync() error
}
type loggerImpl struct {
}
func NewLogger() Logger {
return &loggerImpl{}
}
var ( var (
logger *zap.Logger logger *zap.Logger
once sync.Once once sync.Once
) )
func GetLogger() *zap.Logger { func (l *loggerImpl) Get() *zap.Logger {
once.Do(func() { once.Do(func() {
var err error var err error
cfg := config.GetConfig() cfg := config.GetConfig()
@@ -28,6 +42,6 @@ func GetLogger() *zap.Logger {
return logger return logger
} }
func Sync() error { func (l *loggerImpl) Sync() error {
return logger.Sync() return logger.Sync()
} }