mirror of
https://github.com/keven1024/015.git
synced 2026-05-26 15:13:30 +00:00
feat(backend): add logging middleware and image compression endpoints, enhance environment variable handling
This commit is contained in:
@@ -4,12 +4,21 @@ import (
|
||||
"github.com/spf13/viper"
|
||||
)
|
||||
|
||||
var v = viper.New()
|
||||
var v *viper.Viper
|
||||
|
||||
func init() {
|
||||
InitEnv()
|
||||
}
|
||||
|
||||
func InitEnv() {
|
||||
if v != nil {
|
||||
return
|
||||
}
|
||||
v = viper.New()
|
||||
v.SetConfigName(".env")
|
||||
v.SetConfigType("env")
|
||||
v.AddConfigPath(".")
|
||||
v.AddConfigPath("../")
|
||||
v.AutomaticEnv()
|
||||
if err := v.ReadInConfig(); err != nil {
|
||||
panic(err)
|
||||
@@ -17,6 +26,7 @@ func init() {
|
||||
}
|
||||
|
||||
func GetEnv(key string) string {
|
||||
InitEnv()
|
||||
return v.GetString(key)
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ var rdb *redis.Client = InitRedis()
|
||||
var ctx = context.Background()
|
||||
|
||||
func InitRedis() *redis.Client {
|
||||
opt, err := redis.ParseURL("redis://192.168.100.5:6379/3")
|
||||
opt, err := redis.ParseURL(GetEnv("REDIS_URL"))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
22
backend/internal/utils/zap.go
Normal file
22
backend/internal/utils/zap.go
Normal file
@@ -0,0 +1,22 @@
|
||||
package utils
|
||||
|
||||
import "go.uber.org/zap"
|
||||
|
||||
var sugar *zap.SugaredLogger
|
||||
|
||||
func init() {
|
||||
InitLogClient()
|
||||
}
|
||||
|
||||
func InitLogClient() {
|
||||
if sugar != nil {
|
||||
return
|
||||
}
|
||||
logger, _ := zap.NewProduction()
|
||||
sugar = logger.Sugar()
|
||||
}
|
||||
|
||||
func GetLogClient() *zap.SugaredLogger {
|
||||
InitLogClient()
|
||||
return sugar
|
||||
}
|
||||
@@ -13,6 +13,7 @@ func main() {
|
||||
e.Use(middleware.SessionMiddleware())
|
||||
e.Use(middleware.AuthMiddleware())
|
||||
e.Use(middleware.RateLimiterMiddleware())
|
||||
e.Use(middleware.LoggerMiddleware())
|
||||
|
||||
e.POST("/file/create", controllers.CreateUploadTask)
|
||||
e.POST("/file/slice", controllers.UploadFileSlice)
|
||||
|
||||
26
backend/middleware/logger.go
Normal file
26
backend/middleware/logger.go
Normal file
@@ -0,0 +1,26 @@
|
||||
package middleware
|
||||
|
||||
import (
|
||||
"backend/internal/utils"
|
||||
|
||||
"github.com/labstack/echo/v4"
|
||||
"github.com/labstack/echo/v4/middleware"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func LoggerMiddleware() echo.MiddlewareFunc {
|
||||
log := utils.GetLogClient()
|
||||
return middleware.RequestLoggerWithConfig(middleware.RequestLoggerConfig{
|
||||
LogURI: true,
|
||||
LogStatus: true,
|
||||
LogValuesFunc: func(c echo.Context, v middleware.RequestLoggerValues) error {
|
||||
log.Info("request",
|
||||
zap.String("url", v.URI),
|
||||
zap.Int("status", v.Status),
|
||||
zap.String("method", v.Method),
|
||||
zap.String("ip", v.RemoteIP),
|
||||
)
|
||||
return nil
|
||||
},
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user