From d809df5cda5c63bf76c6646e17335e4307978e78 Mon Sep 17 00:00:00 2001 From: akrike <1625167628@qq.com> Date: Sat, 21 Jun 2025 15:46:42 +0800 Subject: [PATCH] add gin logger --- internal/app/middle/logger.go | 33 +++++++++++++++++++++++++++ internal/app/repository/db.go | 17 +++++++------- internal/app/repository/permission.go | 2 +- internal/app/route/route.go | 2 +- 4 files changed, 43 insertions(+), 11 deletions(-) create mode 100644 internal/app/middle/logger.go diff --git a/internal/app/middle/logger.go b/internal/app/middle/logger.go new file mode 100644 index 0000000..dfc6fc4 --- /dev/null +++ b/internal/app/middle/logger.go @@ -0,0 +1,33 @@ +package middle + +import ( + "fmt" + "strings" + "time" + + "github.com/gin-gonic/gin" + "github.com/lzh-1625/go_process_manager/internal/app/constants" + "github.com/lzh-1625/go_process_manager/log" +) + +func Logger() gin.HandlerFunc { + return func(ctx *gin.Context) { + start := time.Now() + path := ctx.Request.URL.Path + + if !strings.HasPrefix(path, "/api") { + return + } + // Process request + ctx.Next() + logKv := []any{} + logKv = append(logKv, "Method", ctx.Request.Method) + logKv = append(logKv, "Path", path) + logKv = append(logKv, "耗时", fmt.Sprintf("%dms", time.Now().UnixMilli()-start.UnixMilli())) + if user, ok := ctx.Get(constants.CTXFLG_USER_NAME); ok { + logKv = append(logKv, "user", user) + } + log.Logger.Infow("GIN", logKv...) + } + +} diff --git a/internal/app/repository/db.go b/internal/app/repository/db.go index e610bf4..6a7cc1d 100644 --- a/internal/app/repository/db.go +++ b/internal/app/repository/db.go @@ -9,7 +9,6 @@ import ( "github.com/lzh-1625/go_process_manager/internal/app/repository/query" "github.com/glebarez/sqlite" - "gorm.io/gen" "gorm.io/gorm" "gorm.io/gorm/logger" ) @@ -42,15 +41,15 @@ func InitDb() { } sqlDB.SetConnMaxLifetime(time.Hour) db = gdb.Session(&defaultConfig) - // db = gdb.Session(&defaultConfig).Debug() + // db = db.Debug() db.AutoMigrate(&model.Process{}, &model.User{}, &model.Permission{}, &model.Push{}, &model.Config{}, &model.ProcessLog{}, &model.Task{}, &model.WsShare{}) - g := gen.NewGenerator(gen.Config{ - OutPath: "internal/app/repository/query", - Mode: gen.WithoutContext | gen.WithDefaultQuery | gen.WithQueryInterface, // generate mode - }) - g.UseDB(db) - g.ApplyBasic(&model.Process{}, &model.User{}, &model.Permission{}, &model.Push{}, &model.Config{}, &model.ProcessLog{}, &model.Task{}, &model.WsShare{}) - g.Execute() + // g := gen.NewGenerator(gen.Config{ + // OutPath: "internal/app/repository/query", + // Mode: gen.WithoutContext | gen.WithDefaultQuery | gen.WithQueryInterface, // generate mode + // }) + // g.UseDB(db) + // g.ApplyBasic(&model.Process{}, &model.User{}, &model.Permission{}, &model.Push{}, &model.Config{}, &model.ProcessLog{}, &model.Task{}, &model.WsShare{}) + // g.Execute() query.SetDefault(db) } diff --git a/internal/app/repository/permission.go b/internal/app/repository/permission.go index 3b135f0..1467c3a 100644 --- a/internal/app/repository/permission.go +++ b/internal/app/repository/permission.go @@ -65,7 +65,7 @@ func (p *permissionRepository) GetPermission(user string, pid int) (result model } func (p *permissionRepository) GetProcessNameByPermission(user string, op constants.OprPermission) (result []string) { - tx := query.Permission.Select(query.Process.Name).RightJoin(query.Permission, query.Process.Uuid.EqCol(query.Permission.Pid)).Where(query.Permission.Account.Eq(user)).Where(query.Permission.Owned.Is(true)) + tx := query.Permission.Select(query.Process.Name).RightJoin(query.Process, query.Process.Uuid.EqCol(query.Permission.Pid)).Where(query.Permission.Account.Eq(user)).Where(query.Permission.Owned.Is(true)) switch op { case constants.OPERATION_LOG: tx = tx.Where(query.Permission.Log.Is(true)) diff --git a/internal/app/route/route.go b/internal/app/route/route.go index 2511be4..5172a99 100644 --- a/internal/app/route/route.go +++ b/internal/app/route/route.go @@ -20,7 +20,7 @@ func Route() { r := gin.New() r.Use(gin.Recovery()) if !config.CF.Tui { - r.Use(gin.Logger()) + r.Use(middle.Logger()) } routePathInit(r) staticInit(r)