增加go-admin日志规范用法

This commit is contained in:
linwenxiang
2020-09-21 13:04:48 +08:00
parent a8d5846483
commit fdbb76086e
5 changed files with 120 additions and 36 deletions
+18 -32
View File
@@ -1,16 +1,16 @@
package sysjob package sysjob
import ( import (
"go-admin/app/admin/service"
"go-admin/common/apis"
"go-admin/common/dto"
"gorm.io/gorm"
"time" "time"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"go-admin/app/admin/models" "go-admin/app/admin/models"
"go-admin/app/admin/service"
"go-admin/app/jobs" "go-admin/app/jobs"
"go-admin/common/apis"
"go-admin/common/dto"
"go-admin/common/log"
"go-admin/tools" "go-admin/tools"
"go-admin/tools/app" "go-admin/tools/app"
"go-admin/tools/app/msg" "go-admin/tools/app/msg"
@@ -22,40 +22,54 @@ type SysJob struct {
// RemoveJobForService 调用service实现 // RemoveJobForService 调用service实现
func (e *SysJob) RemoveJobForService(c *gin.Context) { func (e *SysJob) RemoveJobForService(c *gin.Context) {
msgID := e.GenerateMsgIDFromContext(c)
db, err := e.GetOrm(c) db, err := e.GetOrm(c)
if err != nil { if err != nil {
log.Errorf("msgID[%s] error:%#v", msgID, err)
app.Error(c, 500, err, "") app.Error(c, 500, err, "")
return
} }
var v dto.GeneralDelDto var v dto.GeneralDelDto
err = c.BindUri(&v) err = c.BindUri(&v)
if err != nil { if err != nil {
log.Errorf("msgID[%s] 参数验证错误, error:%#v", msgID, err)
app.Error(c, 422, err, "参数验证失败") app.Error(c, 422, err, "参数验证失败")
return
} }
s := service.SysJob{} s := service.SysJob{}
s.MsgID = msgID
s.Orm = db s.Orm = db
err = s.RemoveJob(&v) err = s.RemoveJob(&v)
if err != nil { if err != nil {
app.Error(c, 500, err, "") app.Error(c, 500, err, "")
return
} }
app.OK(c, nil, s.Msg) app.OK(c, nil, s.Msg)
} }
// StartJobForService 启动job service实现 // StartJobForService 启动job service实现
func (e *SysJob) StartJobForService(c *gin.Context) { func (e *SysJob) StartJobForService(c *gin.Context) {
msgID := e.GenerateMsgIDFromContext(c)
db, err := e.GetOrm(c) db, err := e.GetOrm(c)
if err != nil { if err != nil {
log.Errorf("msgID[%s] error:%#v", msgID, err)
app.Error(c, 500, err, "") app.Error(c, 500, err, "")
return
} }
var v dto.GeneralGetDto var v dto.GeneralGetDto
err = c.BindUri(&v) err = c.BindUri(&v)
if err != nil { if err != nil {
log.Errorf("msgID[%s] 参数验证错误, error:%#v", msgID, err)
app.Error(c, 422, err, "参数验证失败") app.Error(c, 422, err, "参数验证失败")
return
} }
s := service.SysJob{} s := service.SysJob{}
s.Orm = db s.Orm = db
s.MsgID = msgID
err = s.StartJob(&v) err = s.StartJob(&v)
if err != nil { if err != nil {
app.Error(c, 500, err, "") app.Error(c, 500, err, "")
return
} }
app.OK(c, nil, s.Msg) app.OK(c, nil, s.Msg)
} }
@@ -82,34 +96,6 @@ func RemoveJob(c *gin.Context) {
} }
// StartJobForService 启动job service实现
func StartJobForService(c *gin.Context) {
var err error
idb, exist := c.Get("db")
if !exist {
app.Error(c, 500, nil, "db connect not exist")
}
switch idb.(type) {
case *gorm.DB:
//新增操作
db := idb.(*gorm.DB)
var v dto.GeneralGetDto
err = c.BindUri(&v)
if err != nil {
app.Error(c, 422, err, "参数验证失败")
}
s := service.SysJob{}
s.Orm = db
err = s.StartJob(&v)
if err != nil {
app.Error(c, 500, err, "")
}
app.OK(c, nil, s.Msg)
default:
app.Error(c, 500, nil, "db connect not exist")
}
}
func StartJob(c *gin.Context) { func StartJob(c *gin.Context) {
var data models.SysJob var data models.SysJob
var v dto.GeneralGetDto var v dto.GeneralGetDto
+17
View File
@@ -4,6 +4,7 @@ import (
"go-admin/app/admin/models" "go-admin/app/admin/models"
"go-admin/app/jobs" "go-admin/app/jobs"
"go-admin/common/dto" "go-admin/common/dto"
"go-admin/common/log"
"go-admin/common/service" "go-admin/common/service"
"go-admin/tools/app/msg" "go-admin/tools/app/msg"
"time" "time"
@@ -17,9 +18,11 @@ type SysJob struct {
func (e *SysJob) RemoveJob(c *dto.GeneralDelDto) error { func (e *SysJob) RemoveJob(c *dto.GeneralDelDto) error {
var err error var err error
var data models.SysJob var data models.SysJob
msgID := e.MsgID
data.JobId = c.Id data.JobId = c.Id
err = e.Orm.Table(data.TableName()).First(&data).Error err = e.Orm.Table(data.TableName()).First(&data).Error
if err != nil { if err != nil {
log.Errorf("msgID[%s] db error:%#v", msgID, err)
return err return err
} }
cn := jobs.Remove(data.EntryId) cn := jobs.Remove(data.EntryId)
@@ -28,6 +31,9 @@ func (e *SysJob) RemoveJob(c *dto.GeneralDelDto) error {
case res := <-cn: case res := <-cn:
if res { if res {
err = e.Orm.Table(data.TableName()).Where("entry_id = ?", data.EntryId).Update("entry_id", 0).Error err = e.Orm.Table(data.TableName()).Where("entry_id = ?", data.EntryId).Update("entry_id", 0).Error
if err != nil {
log.Errorf("msgID[%s] db error:%#v", msgID, err)
}
return err return err
} }
case <-time.After(time.Second * 1): case <-time.After(time.Second * 1):
@@ -41,8 +47,10 @@ func (e *SysJob) RemoveJob(c *dto.GeneralDelDto) error {
func (e *SysJob) StartJob(c *dto.GeneralGetDto) error { func (e *SysJob) StartJob(c *dto.GeneralGetDto) error {
var data models.SysJob var data models.SysJob
var err error var err error
msgID := e.MsgID
err = e.Orm.Table(data.TableName()).First(&data, c.Id).Error err = e.Orm.Table(data.TableName()).First(&data, c.Id).Error
if err != nil { if err != nil {
log.Errorf("msgID[%s] db error:%#v", msgID, err)
return err return err
} }
if data.JobType == 1 { if data.JobType == 1 {
@@ -52,6 +60,9 @@ func (e *SysJob) StartJob(c *dto.GeneralGetDto) error {
j.JobId = data.JobId j.JobId = data.JobId
j.Name = data.JobName j.Name = data.JobName
data.EntryId, err = jobs.AddJob(j) data.EntryId, err = jobs.AddJob(j)
if err != nil {
log.Errorf("msgID[%s] jobs AddJob[HttpJob] error:%#v", msgID, err)
}
} else { } else {
var j = &jobs.ExecJob{} var j = &jobs.ExecJob{}
j.InvokeTarget = data.InvokeTarget j.InvokeTarget = data.InvokeTarget
@@ -60,11 +71,17 @@ func (e *SysJob) StartJob(c *dto.GeneralGetDto) error {
j.Name = data.JobName j.Name = data.JobName
j.Args = data.Args j.Args = data.Args
data.EntryId, err = jobs.AddJob(j) data.EntryId, err = jobs.AddJob(j)
if err != nil {
log.Errorf("msgID[%s] jobs AddJob[ExecJob] error:%#v", msgID, err)
}
} }
if err != nil { if err != nil {
return err return err
} }
err = e.Orm.Table(data.TableName()).Where(c.Id).Updates(&data).Error err = e.Orm.Table(data.TableName()).Where(c.Id).Updates(&data).Error
if err != nil {
log.Errorf("msgID[%s] db error:%#v", msgID, err)
}
return err return err
} }
+19 -2
View File
@@ -2,7 +2,10 @@ package apis
import ( import (
"errors" "errors"
"fmt"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/google/uuid"
"github.com/spf13/cast"
"gorm.io/gorm" "gorm.io/gorm"
) )
@@ -11,15 +14,29 @@ type Api struct {
// GetOrm 获取orm连接 // GetOrm 获取orm连接
func (e *Api) GetOrm(c *gin.Context) (*gorm.DB, error) { func (e *Api) GetOrm(c *gin.Context) (*gorm.DB, error) {
msgID := e.GenerateMsgIDFromContext(c)
idb, exist := c.Get("db") idb, exist := c.Get("db")
if !exist { if !exist {
return nil, errors.New("db connect not exist") return nil, errors.New(fmt.Sprintf("msgID[%s], db connect not exist", msgID))
} }
switch idb.(type) { switch idb.(type) {
case *gorm.DB: case *gorm.DB:
//新增操作 //新增操作
return idb.(*gorm.DB), nil return idb.(*gorm.DB), nil
default: default:
return nil, errors.New("db connect not exist") return nil, errors.New(fmt.Sprintf("msgID[%s], db connect not exist", msgID))
} }
} }
// GenerateMsgIDFromContext 生成msgID
func (e *Api) GenerateMsgIDFromContext(c *gin.Context) string {
var msgID string
data, ok := c.Get("msgID")
if !ok {
msgID = uuid.New().String()
c.Set("msgID", msgID)
return msgID
}
msgID = cast.ToString(data)
return msgID
}
+63
View File
@@ -0,0 +1,63 @@
package log
import "go-admin/logger"
// Trace trace级日志输出
func Trace(args ...interface{}) {
logger.DefaultLogger.Log(logger.TraceLevel, args...)
}
// Trace trace级日志输出
func Tracef(format string, args ...interface{}) {
logger.DefaultLogger.Logf(logger.TraceLevel, format, args...)
}
// Debug debug级日志输出
func Debug(args ...interface{}) {
logger.DefaultLogger.Log(logger.TraceLevel, args...)
}
// Debugf debug级日志输出
func Debugf(format string, args ...interface{}) {
logger.DefaultLogger.Logf(logger.TraceLevel, format, args...)
}
// Info info级日志输出
func Info(args ...interface{}) {
logger.DefaultLogger.Log(logger.TraceLevel, args...)
}
// Infof info级日志输出
func Infof(format string, args ...interface{}) {
logger.DefaultLogger.Logf(logger.TraceLevel, format, args...)
}
// Warn warn级日志输出
func Warn(args ...interface{}) {
logger.DefaultLogger.Log(logger.TraceLevel, args...)
}
// Warnf warn级日志输出
func Warnf(format string, args ...interface{}) {
logger.DefaultLogger.Logf(logger.TraceLevel, format, args...)
}
// Error error级日志输出
func Error(args ...interface{}) {
logger.DefaultLogger.Log(logger.TraceLevel, args...)
}
// Errorf error级日志输出
func Errorf(format string, args ...interface{}) {
logger.DefaultLogger.Logf(logger.TraceLevel, format, args...)
}
// Fatal fatal级日志输出
func Fatal(args ...interface{}) {
logger.DefaultLogger.Log(logger.TraceLevel, args...)
}
// Fatalf fatal级日志输出
func Fatalf(format string, args ...interface{}) {
logger.DefaultLogger.Logf(logger.TraceLevel, format, args...)
}
+3 -2
View File
@@ -3,6 +3,7 @@ package service
import "gorm.io/gorm" import "gorm.io/gorm"
type Service struct { type Service struct {
Orm *gorm.DB Orm *gorm.DB
Msg string Msg string
MsgID string
} }