Browse Source

状态码更新

huangyan 11 months ago
parent
commit
3f42ccdeaa
12 changed files with 154 additions and 73 deletions
  1. 10 0
      app/controller/user.go
  2. 17 13
      app/e/code_msg.go
  3. 3 3
      app/service/imp/user_imp.go
  4. 5 2
      configs/config.yaml
  5. 4 2
      global/redis.go
  6. 5 0
      global/setting.go
  7. 1 0
      go.mod
  8. 2 50
      go.sum
  9. 34 0
      log/log.20240408.log
  10. 8 3
      main.go
  11. 3 0
      nats/Nats.go
  12. 62 0
      simple_zap/simple_zap.go

+ 10 - 0
app/controller/user.go

@@ -7,7 +7,9 @@ import (
 	"Ic_ouath/global"
 	"Ic_ouath/models"
 	"Ic_ouath/page"
+	"Ic_ouath/simple_zap"
 	"Ic_ouath/utils"
+	"context"
 	"github.com/astaxie/beego/validation"
 	"github.com/gin-gonic/gin"
 )
@@ -96,6 +98,7 @@ func CodeLogin(c *gin.Context) {
 	err := c.ShouldBindJSON(&userRegist)
 	if err != nil {
 		e.ResponseWithMsg(c, e.JSONParsingFailed, e.JSONParsingFailed.GetMsg())
+		simple_zap.WithCtx(context.Background()).Sugar().Warn(err, e.JSONParsingFailed.GetMsg())
 		return
 	}
 	login, rescode := users.CodeLogin(userRegist)
@@ -103,6 +106,7 @@ func CodeLogin(c *gin.Context) {
 		e.ResponseSuccess(c, login)
 	} else {
 		e.ResponseWithMsg(c, rescode, rescode.GetMsg())
+		simple_zap.WithCtx(context.Background()).Sugar().Warn(err, rescode.GetMsg())
 	}
 }
 
@@ -130,11 +134,13 @@ func GetUserAlls(c *gin.Context) {
 	err := c.ShouldBindJSON(&pages)
 	if err != nil {
 		e.ResponseWithMsg(c, e.JSONParsingFailed, e.JSONParsingFailed.GetMsg())
+		simple_zap.WithCtx(context.Background()).Sugar().Warn(err, e.JSONParsingFailed.GetMsg())
 		return
 	}
 	result, total, err := page.Paginate(global.DBLink, pages, models.User{})
 	if err != nil {
 		e.ResponseWithMsg(c, e.PaginationFailed, e.PaginationFailed.GetMsg())
+		simple_zap.WithCtx(context.Background()).Sugar().Warn(err, e.PaginationFailed.GetMsg())
 		return
 	}
 	e.ResPonsePage(c, result, total, pages)
@@ -154,6 +160,7 @@ func UpdateUserById(c *gin.Context) {
 	err := c.ShouldBindJSON(&userVo)
 	if err != nil {
 		e.ResponseWithMsg(c, e.JSONParsingFailed, e.JSONParsingFailed.GetMsg())
+		simple_zap.WithCtx(context.Background()).Sugar().Warn(err, e.JSONParsingFailed.GetMsg())
 		return
 	}
 	recode := users.UpdateUser(userId, userVo)
@@ -161,6 +168,8 @@ func UpdateUserById(c *gin.Context) {
 		e.ResponseSuccess(c, "修改成功")
 	} else {
 		e.ResponseWithMsg(c, recode, recode.GetMsg())
+		simple_zap.WithCtx(context.Background()).Sugar().Info(err, recode.GetMsg())
+
 	}
 }
 
@@ -179,6 +188,7 @@ func DeleteUserById(c *gin.Context) {
 		e.ResponseSuccess(c, "删除成功")
 	} else {
 		e.ResponseWithMsg(c, recode, recode.GetMsg())
+		simple_zap.WithCtx(context.Background()).Sugar().Info(recode.GetMsg())
 	}
 
 }

+ 17 - 13
app/e/code_msg.go

@@ -18,6 +18,8 @@ const (
 	AlreadyExists
 	TheSystemIsAbnormal
 	CodeIsError
+	TheVerificationCodeWasNotSent
+	AccountExists
 	Theuseralreadyexists
 	ThePhoneNumberIsWrong
 	AnExceptionOccursWhenSendingAnSMSVerificationCode
@@ -28,19 +30,21 @@ const (
 )
 
 var MsgFlags = map[Rescode]string{
-	SUCCESS:               "ok",
-	ERROR:                 "fail",
-	DELETEFAIL:            "删除失败",
-	TheUserAlreadyExists:  "用户已存在",
-	TheSystemIsAbnormal:   "系统异常",
-	CodeIsError:           "验证码错误",
-	UPDATEFAIL:            "更新失败",
-	Theuseralreadyexists:  "用户已存在",
-	JSONParsingFailed:     "json解析失败",
-	ThePhoneNumberIsWrong: "手机号错误",
-	HasSend:               "验证码已发送",
-	AlreadyExists:         "手机号已存在",
-	PaginationFailed:      "分页查询失败",
+	SUCCESS:                       "ok",
+	ERROR:                         "fail",
+	DELETEFAIL:                    "删除失败",
+	TheUserAlreadyExists:          "用户已存在",
+	TheSystemIsAbnormal:           "系统异常",
+	CodeIsError:                   "验证码错误",
+	UPDATEFAIL:                    "更新失败",
+	Theuseralreadyexists:          "用户已存在",
+	JSONParsingFailed:             "json解析失败",
+	ThePhoneNumberIsWrong:         "手机号错误",
+	HasSend:                       "验证码已发送",
+	AlreadyExists:                 "手机号已存在",
+	AccountExists:                 "账号已存在",
+	PaginationFailed:              "分页查询失败",
+	TheVerificationCodeWasNotSent: "验证码未发送",
 	AnExceptionOccursWhenSendingAnSMSVerificationCode: "发送短信验证码出现异常",
 	ThePasswordIsWrongOrThePhoneNumberIsIncorrect:     "手机号或者密码错误",
 	TokenIsInvalid: "Token 无效",

+ 3 - 3
app/service/imp/user_imp.go

@@ -20,12 +20,12 @@ func (u *User) PhoneRegist(userRegist models.UserRegist) e.Rescode {
 		return e.AlreadyExists
 	}
 	if tx.RowsAffected > 0 {
-		return e.TheUserAlreadyExists
+		return e.AlreadyExists
 	} else {
 		ctx := context.Background()
 		result, err := global.Rdb.Get(ctx, userRegist.Phone).Result()
 		if err != nil {
-			return e.TheSystemIsAbnormal
+			return e.TheVerificationCodeWasNotSent
 		} else if result != userRegist.Code {
 			return e.CodeIsError
 		}
@@ -76,7 +76,7 @@ func (u *User) CodeLogin(userRegist models.UserRegist) (models.UserDto, e.Rescod
 	ctx := context.Background()
 	result, err := global.Rdb.Get(ctx, userRegist.Phone).Result()
 	if err != nil {
-		return userdto, e.TheSystemIsAbnormal
+		return userdto, e.CodeIsError
 	} else if result != userRegist.Code {
 		return userdto, e.CodeIsError
 	}

+ 5 - 2
configs/config.yaml

@@ -30,13 +30,16 @@ server:
   # http服务信息
   insecureServingInfo:
   # 监听端口
-  port: ":8080"
+  port: ":8081"
 subMail:
   appid: "97173"
   signature: "f639a60e41ee0554921d89884f5ff87e"
 redis:
-  addr: "192.168.0.100:6379"
+  addr: "192.168.11.68:6379"
   password: ""
   db: 0
 nats:
   NatsServer_Url: "nats://127.0.0.0:4222"
+swag:
+  # 将环境变量 NAME_OF_ENV_VARIABLE设置为任意值,则 /swagger/*any 返回404响应
+  enable: "NAME_OF_ENV_VARIABLE"

+ 4 - 2
global/redis.go

@@ -1,6 +1,7 @@
 package global
 
 import (
+	"Ic_ouath/simple_zap"
 	"context"
 	"fmt"
 	"github.com/go-redis/redis/v8"
@@ -8,18 +9,19 @@ import (
 
 var Rdb *redis.Client
 
-func init() {
+func SetupRedisLink() {
 	//addr := RedisSetting.Addr
 	//password := RedisSetting.Password
 	//db := RedisSetting.DB
 	Rdb = redis.NewClient(&redis.Options{
-		Addr:     "192.168.11.70:6379",
+		Addr:     RedisSetting.Addr,
 		Password: "",
 		DB:       0,
 	})
 	ctx := context.Background()
 	_, err := Rdb.Ping(ctx).Result()
 	if err != nil {
+		simple_zap.WithCtx(context.Background()).Sugar().Warn("redis连接失败", err)
 		fmt.Println(err)
 	}
 }

+ 5 - 0
global/setting.go

@@ -45,6 +45,9 @@ type Redis struct {
 	Password string `json:"password"`
 	DB       int    `json:"db"`
 }
+type Swagger struct {
+	Enable string `json:"enable"`
+}
 
 var (
 	DatabaseSetting *DatabaseSettingS
@@ -53,6 +56,7 @@ var (
 	ServerSetting   *ServerSettingS
 	SubMailSetting  *SubMail
 	RedisSetting    *Redis
+	SwaggerSetting  *Swagger
 )
 
 // SetupSetting 读取配置到全局变量
@@ -64,6 +68,7 @@ func SetupSetting() error {
 	err = s.ReadSection("Server", &ServerSetting)
 	err = s.ReadSection("SubMail", &SubMailSetting)
 	err = s.ReadSection("Redis", &RedisSetting)
+	err = s.ReadSection("Swagger", &SwaggerSetting)
 	if err != nil {
 		return err
 	}

+ 1 - 0
go.mod

@@ -18,6 +18,7 @@ require (
 	github.com/swaggo/gin-swagger v1.6.0
 	github.com/swaggo/swag v1.16.3
 	go.uber.org/zap v1.27.0
+	gopkg.in/natefinch/lumberjack.v2 v2.2.1
 	gorm.io/driver/mysql v1.5.6
 	gorm.io/gorm v1.25.9
 )

+ 2 - 50
go.sum

@@ -1,10 +1,3 @@
-cloud.google.com/go v0.110.10/go.mod h1:v1OoFqYxiBkUrruItNM3eT4lLByNjxmJSV/xDKJNnic=
-cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI=
-cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
-cloud.google.com/go/firestore v1.14.0/go.mod h1:96MVaHLsEhbvkBEdZgfN+AS/GIkco1LRpH9Xp9YZfzQ=
-cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8=
-cloud.google.com/go/longrunning v0.5.4/go.mod h1:zqNVncI0BOP8ST6XQD1+VcvuShMmq7+xFSzOL++V0dI=
-cloud.google.com/go/storage v1.35.1/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 github.com/Knetic/govaluate v3.0.0+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
 github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc=
@@ -19,7 +12,6 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF
 github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
 github.com/alicebob/gopher-json v0.0.0-20180125190556-5a6b3ba71ee6/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc=
 github.com/alicebob/miniredis v2.5.0+incompatible/go.mod h1:8HZjEj4yU0dwhYHky+DxYx+6BMjkBbe5ONFIF1MXffk=
-github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4=
 github.com/astaxie/beego v1.12.3 h1:SAQkdD2ePye+v8Gn1r4X6IKZM1wd28EyUOVQ3PDSOOQ=
 github.com/astaxie/beego v1.12.3/go.mod h1:p3qIm0Ryx7zeBHLljmd7omloyca1s4yu1a8kM1FkpIA=
 github.com/beego/goyaml2 v0.0.0-20130207012346-5545475820dd/go.mod h1:1b+Y/CofkYwXMUU0OhQqGvsY2Bvgr4j6jfT699wyZKQ=
@@ -44,12 +36,9 @@ github.com/chenzhuoyu/iasm v0.9.0/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLI
 github.com/chenzhuoyu/iasm v0.9.1 h1:tUHQJXo3NhBqw6s33wkGn9SP3bvrWLdlVIJ3hQBL7P0=
 github.com/chenzhuoyu/iasm v0.9.1/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog=
 github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80=
-github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
-github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
 github.com/couchbase/go-couchbase v0.0.0-20200519150804-63f3cdb75e0d/go.mod h1:TWI8EKQMs5u5jLKW/tsb9VwauIrMIxQG1r5fMsswK5U=
 github.com/couchbase/gomemcached v0.0.0-20200526233749-ec430f949808/go.mod h1:srVSlQLB8iXBVXHgnqemxUXqN6FCvClgCMPCsjBDR7c=
 github.com/couchbase/goutils v0.0.0-20180530154633-e865a1461c8a/go.mod h1:BQwMFlJzDjFDG3DJUdU0KORxn88UlsOULuxLExMh3Hs=
-github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
 github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
 github.com/cupcake/rdb v0.0.0-20161107195141-43ba34106c76/go.mod h1:vYwsqCOLxGiisLwp9rITslkFNpZD5rz43tf41QFkTWY=
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -61,7 +50,6 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cu
 github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
 github.com/elastic/go-elasticsearch/v6 v6.8.5/go.mod h1:UwaDJsD3rWLM5rKNFzv9hgox93HoX8utj1kxD9aFUcI=
 github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=
-github.com/fatih/color v1.14.1/go.mod h1:2oHN61fhTpgcxD3TSWCgKDiH1+x4OiDVVGH8WlgGZGg=
 github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
 github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
 github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
@@ -110,10 +98,8 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me
 github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
 github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
 github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
-github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
 github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
 github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -123,7 +109,6 @@ github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrU
 github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
 github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
 github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
-github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
 github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
@@ -133,20 +118,9 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
 github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
 github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
 github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw=
-github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0=
-github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU=
-github.com/googleapis/google-cloud-go-testing v0.0.0-20210719221736-1c9a4c676720/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
-github.com/hashicorp/consul/api v1.25.1/go.mod h1:iiLVwR/htV7mas/sy0O+XSuEnrdBUUydemjxcUrAt4g=
-github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
-github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
-github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
-github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8=
 github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
 github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
 github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
-github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4=
 github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
 github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
 github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
@@ -168,7 +142,6 @@ github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuV
 github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
 github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M=
 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
-github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
 github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
 github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
 github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
@@ -193,12 +166,10 @@ github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN
 github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA=
 github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
-github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
 github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
 github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
 github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
 github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
-github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
 github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
 github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
 github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@@ -235,7 +206,6 @@ github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
 github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
 github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/sftp v1.13.6/go.mod h1:tz1ryNURKu77RL+GuCzmoJYxQczL3wLNNpPWagdg4Qk=
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
 github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
@@ -254,15 +224,12 @@ github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 h1:mZHayPoR0lNmnH
 github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5/go.mod h1:GEXHk5HgEKCvEIIrSpFI3ozzG5xOKA2DVlEX/gGnewM=
 github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
 github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
-github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/sagikazarmark/crypt v0.17.0/go.mod h1:SMtHTvdmsZMuY/bpZoqokSoChIrcJ/epOxZN58PbZDg=
 github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ=
 github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4=
 github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
 github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ=
 github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 h1:X+yvsM2yrEktyI+b2qND5gpH8YhURn0k8OCaeRnkINo=
 github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644/go.mod h1:nkxAfR/5quYxwPZhyDxgasBMnRtBZd0FCEpawpjMUFg=
-github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
 github.com/siddontang/go v0.0.0-20170517070808-cb568a3e5cc0/go.mod h1:3yhqj7WBBfRhbBlzyOC3gUxftwsU0u8gqevxwIHQpMw=
 github.com/siddontang/goredis v0.0.0-20150324035039-760763f78400/go.mod h1:DDcKzU3qCuvj/tPnimWSsZZzvk9qvkvrIL5naVBPh5s=
 github.com/siddontang/rdb v0.0.0-20150307021120-fc89ed2e418d/go.mod h1:AMEsy7v5z92TR1JKMkLLoaOQk++LVnOKL3ScbJ8GNGA=
@@ -312,16 +279,9 @@ github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2
 github.com/ugorji/go v0.0.0-20171122102828-84cb69a8af83/go.mod h1:hnLbHMwcvSihnDhEfx2/BzKp2xb0Y+ErdfYcrs9tkJQ=
 github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE=
 github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
-github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI=
 github.com/wendal/errors v0.0.0-20130201093226-f66c77a7882b/go.mod h1:Q12BUT7DqIlHRmgv3RskH+UCM/4eqVMgI0EMmlSpAXc=
 github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
 github.com/yuin/gopher-lua v0.0.0-20171031051903-609c9cd26973/go.mod h1:aEV29XrmTYFr3CiRxZeGHpkvbwq+prZduBqMaascyCU=
-go.etcd.io/etcd/api/v3 v3.5.10/go.mod h1:TidfmT4Uycad3NM/o25fG3J07odo4GBB9hoxaodFCtI=
-go.etcd.io/etcd/client/pkg/v3 v3.5.10/go.mod h1:DYivfIviIuQ8+/lCq4vcxuseg2P2XbHygkKwFo9fc8U=
-go.etcd.io/etcd/client/v2 v2.305.10/go.mod h1:m3CKZi69HzilhVqtPDcjhSGp+kA1OmbNn0qamH80xjA=
-go.etcd.io/etcd/client/v3 v3.5.10/go.mod h1:RVeBnDz2PUEZqTpgqwAtUd8nAPf5kjyFyND7P1VkOKc=
-go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
-go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
 go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
 go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
 go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ=
@@ -358,7 +318,6 @@ golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
 golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
 golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc=
 golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
-golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -366,7 +325,6 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ
 golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -412,13 +370,6 @@ golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ=
 golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
-google.golang.org/api v0.153.0/go.mod h1:3qNJX5eOmhiWYc67jRA/3GsDw97UFb5ivv7Y2PrriAY=
-google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
-google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:J7XzRzVy1+IPwWHZUzoD0IccYZIrXILAQpc+Qy9CMhY=
-google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:0xJLfVdJqpAPl8tDg1ujOCGzx6LFLttXT5NhllGOXY4=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f/go.mod h1:L9KNLi232K1/xB6f7AlSX692koaRnKaWSR0stBki0Yc=
-google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98=
 google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
 google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
 google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@@ -437,6 +388,8 @@ gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMy
 gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
 gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
 gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA=
+gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc=
+gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc=
 gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
 gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
 gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
@@ -457,4 +410,3 @@ gorm.io/gorm v1.25.9 h1:wct0gxZIELDk8+ZqF/MVnHLkA1rvYlBWUMv2EdsK1g8=
 gorm.io/gorm v1.25.9/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8=
 nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50=
 rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
-sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=

+ 34 - 0
log/log.20240408.log

@@ -1,3 +1,37 @@
 {"client_ip":"::1","latency_time":61847000,"level":"info","msg":"","req_method":"POST","req_uri":"/api/login","status_code":200,"time":"2024-04-08 09:44:23"}
 {"client_ip":"::1","latency_time":5460600,"level":"info","msg":"","req_method":"POST","req_uri":"/api/login","status_code":200,"time":"2024-04-08 09:45:46"}
 {"client_ip":"::1","latency_time":3928400,"level":"info","msg":"","req_method":"POST","req_uri":"/api/login","status_code":200,"time":"2024-04-08 09:53:20"}
+{"client_ip":"::1","latency_time":534200,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/index.html","status_code":200,"time":"2024-04-08 15:38:14"}
+{"client_ip":"::1","latency_time":608500,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/swagger-ui.css","status_code":200,"time":"2024-04-08 15:38:14"}
+{"client_ip":"::1","latency_time":3189800,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/swagger-ui-standalone-preset.js","status_code":200,"time":"2024-04-08 15:38:14"}
+{"client_ip":"::1","latency_time":5718800,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/swagger-ui-bundle.js","status_code":200,"time":"2024-04-08 15:38:14"}
+{"client_ip":"::1","latency_time":1947900,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/doc.json","status_code":200,"time":"2024-04-08 15:38:14"}
+{"client_ip":"::1","latency_time":0,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/favicon-32x32.png","status_code":200,"time":"2024-04-08 15:38:14"}
+{"client_ip":"127.0.0.1","latency_time":0,"level":"info","msg":"","req_method":"OPTIONS","req_uri":"/api/admin/getalluser","status_code":404,"time":"2024-04-08 15:38:26"}
+{"client_ip":"::1","latency_time":5031400,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/index.html","status_code":200,"time":"2024-04-08 15:40:40"}
+{"client_ip":"::1","latency_time":1173500,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/swagger-ui.css","status_code":200,"time":"2024-04-08 15:40:40"}
+{"client_ip":"::1","latency_time":7658000,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/swagger-ui-bundle.js","status_code":200,"time":"2024-04-08 15:40:40"}
+{"client_ip":"::1","latency_time":907800,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/swagger-ui-standalone-preset.js","status_code":200,"time":"2024-04-08 15:40:40"}
+{"client_ip":"::1","latency_time":0,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/favicon-32x32.png","status_code":200,"time":"2024-04-08 15:40:41"}
+{"client_ip":"::1","latency_time":722500,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/doc.json","status_code":200,"time":"2024-04-08 15:40:41"}
+{"client_ip":"127.0.0.1","latency_time":0,"level":"info","msg":"","req_method":"OPTIONS","req_uri":"/api/admin/getalluser","status_code":204,"time":"2024-04-08 15:40:49"}
+{"client_ip":"127.0.0.1","latency_time":4002700,"level":"info","msg":"","req_method":"POST","req_uri":"/api/admin/getalluser","status_code":200,"time":"2024-04-08 15:40:49"}
+{"client_ip":"::1","latency_time":887700,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/index.html","status_code":200,"time":"2024-04-08 15:43:30"}
+{"client_ip":"::1","latency_time":811300,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/swagger-ui.css","status_code":200,"time":"2024-04-08 15:43:30"}
+{"client_ip":"::1","latency_time":3129200,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/swagger-ui-bundle.js","status_code":200,"time":"2024-04-08 15:43:30"}
+{"client_ip":"::1","latency_time":2522400,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/swagger-ui-standalone-preset.js","status_code":200,"time":"2024-04-08 15:43:30"}
+{"client_ip":"::1","latency_time":0,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/favicon-32x32.png","status_code":200,"time":"2024-04-08 15:43:30"}
+{"client_ip":"::1","latency_time":725400,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/doc.json","status_code":200,"time":"2024-04-08 15:43:30"}
+{"client_ip":"127.0.0.1","latency_time":0,"level":"info","msg":"","req_method":"OPTIONS","req_uri":"/api/admin/getalluser","status_code":204,"time":"2024-04-08 15:43:37"}
+{"client_ip":"127.0.0.1","latency_time":999700,"level":"info","msg":"","req_method":"POST","req_uri":"/api/admin/getalluser","status_code":200,"time":"2024-04-08 15:43:37"}
+{"client_ip":"127.0.0.1","latency_time":0,"level":"info","msg":"","req_method":"OPTIONS","req_uri":"/api/admin/getalluser","status_code":204,"time":"2024-04-08 15:43:58"}
+{"client_ip":"127.0.0.1","latency_time":0,"level":"info","msg":"","req_method":"POST","req_uri":"/api/admin/getalluser","status_code":200,"time":"2024-04-08 15:43:58"}
+{"client_ip":"::1","latency_time":1109300,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/index.html","status_code":200,"time":"2024-04-08 15:46:40"}
+{"client_ip":"::1","latency_time":535400,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/swagger-ui.css","status_code":304,"time":"2024-04-08 15:46:40"}
+{"client_ip":"::1","latency_time":0,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/swagger-ui-bundle.js","status_code":304,"time":"2024-04-08 15:46:40"}
+{"client_ip":"::1","latency_time":0,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/swagger-ui-standalone-preset.js","status_code":304,"time":"2024-04-08 15:46:40"}
+{"client_ip":"::1","latency_time":1106600,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/favicon-32x32.png","status_code":304,"time":"2024-04-08 15:46:40"}
+{"client_ip":"::1","latency_time":845300,"level":"info","msg":"","req_method":"GET","req_uri":"/swagger/doc.json","status_code":200,"time":"2024-04-08 15:46:40"}
+{"client_ip":"127.0.0.1","latency_time":0,"level":"info","msg":"","req_method":"OPTIONS","req_uri":"/api/admin/getalluser","status_code":204,"time":"2024-04-08 15:46:45"}
+{"client_ip":"127.0.0.1","latency_time":0,"level":"info","msg":"","req_method":"POST","req_uri":"/api/admin/getalluser","status_code":200,"time":"2024-04-08 15:46:45"}
+{"client_ip":"127.0.0.1","latency_time":20118865100,"level":"info","msg":"","req_method":"POST","req_uri":"/api/sendcode?phone=15186767321","status_code":200,"time":"2024-04-08 15:47:33"}

+ 8 - 3
main.go

@@ -5,19 +5,22 @@ import (
 	"Ic_ouath/global"
 	"Ic_ouath/nats"
 	_ "Ic_ouath/nats"
-	"log"
+	"Ic_ouath/simple_zap"
+	"context"
 )
 
 func init() {
 	err := global.SetupSetting()
 	if err != nil {
-		log.Fatalf("init.SetupSetting err: %v", err)
+		simple_zap.WithCtx(context.Background()).Sugar().Warn(err, "配置文件读取失败")
 	}
 	err = global.SetupDBLink()
 	if err != nil {
-		log.Fatalf("init.SetupDBLink err: %v", err)
+		simple_zap.WithCtx(context.Background()).Sugar().Warn(err, "数据库连接失败")
 	}
+	global.SetupRedisLink()
 	nats.SetupNats()
+
 }
 
 // @title 统一登录平台
@@ -30,5 +33,7 @@ func init() {
 func main() {
 	err := app.InitRouter()
 	if err != nil {
+		simple_zap.WithCtx(context.Background()).Sugar().Warn(err, "项目初始化失败")
+		return
 	}
 }

+ 3 - 0
nats/Nats.go

@@ -2,7 +2,9 @@ package nats
 
 import (
 	"Ic_ouath/global"
+	"Ic_ouath/simple_zap"
 	"Ic_ouath/utils"
+	"context"
 	"fmt"
 	"github.com/bytedance/sonic"
 	"github.com/nats-io/nats.go"
@@ -23,6 +25,7 @@ func SetupNats() {
 	//Nats, err = nats.Connect("nats://116.204.6.184:4222")
 	if err != nil {
 		fmt.Println("nats 连接失败!")
+		simple_zap.WithCtx(context.Background()).Sugar().Warn(err, "nats 连接失败")
 		panic(err)
 	}
 	fmt.Println("nats OK!")

+ 62 - 0
simple_zap/simple_zap.go

@@ -0,0 +1,62 @@
+package simple_zap
+
+import (
+	"context"
+	"go.uber.org/zap"
+	"go.uber.org/zap/zapcore"
+	"gopkg.in/natefinch/lumberjack.v2"
+)
+
+const loggerCtxKey = "baozhida"
+
+var Logger *zap.Logger
+
+func init() {
+	hook := lumberjack.Logger{
+		Filename:   "./log/app.log",
+		MaxSize:    1,
+		Compress:   true,
+		MaxAge:     30,
+		MaxBackups: 7,
+		LocalTime:  true,
+	}
+	encoder_config := zapcore.EncoderConfig{
+		MessageKey:     "message",
+		LevelKey:       "level",
+		TimeKey:        "time",
+		CallerKey:      "lineNum",
+		FunctionKey:    "func",
+		LineEnding:     zapcore.DefaultLineEnding,      // 回车符换行
+		EncodeLevel:    zapcore.LowercaseLevelEncoder,  // level小写: info,debug,warn等 而不是 Info, Debug,Warn等
+		EncodeTime:     zapcore.ISO8601TimeEncoder,     // 时间格式: "2006-01-02T15:04:05.000Z0700"
+		EncodeDuration: zapcore.SecondsDurationEncoder, // 时间戳用float64型,更加准确, 另一种是NanosDurationEncoder int64
+		EncodeCaller:   zapcore.ShortCallerEncoder,     // 产生日志文件的路径格式: 包名/文件名:行号
+	}
+	caller := zap.AddCaller()         //日志打印输出 文件名, 行号, 函数名
+	development := zap.Development()  // 可输出 dpanic, panic 级别的日志
+	field := zap.Fields()             // 负责给日志生成一个个 k-v 对
+	var syncers []zapcore.WriteSyncer // io writer
+	syncers = append(syncers, zapcore.AddSync(&hook))
+	atomic_level := zap.NewAtomicLevel()  // 设置日志 level
+	atomic_level.SetLevel(zap.DebugLevel) // 打印 debug, info, warn,eror, depanic,panic,fetal 全部级别日志
+	core := zapcore.NewCore(zapcore.NewJSONEncoder(encoder_config), zapcore.NewMultiWriteSyncer(syncers...), atomic_level)
+	Logger = zap.New(core, caller, development, field)
+
+}
+
+// NewCtx 给 ctx 注入一个 looger, logger 中包含Field(内含日志打印的 k-v对)
+func NewCtx(ctx context.Context, fields ...zapcore.Field) context.Context {
+	return context.WithValue(ctx, loggerCtxKey, WithCtx(ctx).With(fields...))
+}
+
+// WithCtx 尝试从 context 中获取带有 traceId Field的 logge
+func WithCtx(ctx context.Context) *zap.Logger {
+	if ctx == nil {
+		return Logger
+	}
+	ctx_logger, ok := ctx.Value(loggerCtxKey).(*zap.Logger)
+	if ok {
+		return ctx_logger
+	}
+	return Logger
+}