自定义logger保留gorm的格式输出控制台, 修改SetUserInfo的校验规则为IdVerify
This commit is contained in:
@@ -10,7 +10,11 @@ import (
|
||||
"os"
|
||||
)
|
||||
|
||||
// Gorm 初始化数据库并产生数据库全局变量
|
||||
//@author: SliverHorn
|
||||
//@function: Gorm
|
||||
//@description: 初始化数据库并产生数据库全局变量
|
||||
//@return: *gorm.DB
|
||||
|
||||
func Gorm() *gorm.DB {
|
||||
switch global.GVA_CONFIG.System.DbType {
|
||||
case "mysql":
|
||||
@@ -20,7 +24,12 @@ func Gorm() *gorm.DB {
|
||||
}
|
||||
}
|
||||
|
||||
// MysqlTables 注册数据库表专用
|
||||
// MysqlTables
|
||||
//@author: SliverHorn
|
||||
//@function: MysqlTables
|
||||
//@description: 注册数据库表专用
|
||||
//@param: db *gorm.DB
|
||||
|
||||
func MysqlTables(db *gorm.DB) {
|
||||
err := db.AutoMigrate(
|
||||
model.SysUser{},
|
||||
@@ -52,7 +61,12 @@ func MysqlTables(db *gorm.DB) {
|
||||
global.GVA_LOG.Info("register table success")
|
||||
}
|
||||
|
||||
// GormMysql 初始化Mysql数据库
|
||||
//
|
||||
//@author: SliverHorn
|
||||
//@function: GormMysql
|
||||
//@description: 初始化Mysql数据库
|
||||
//@return: *gorm.DB
|
||||
|
||||
func GormMysql() *gorm.DB {
|
||||
m := global.GVA_CONFIG.Mysql
|
||||
dsn := m.Username + ":" + m.Password + "@tcp(" + m.Path + ")/" + m.Dbname + "?" + m.Config
|
||||
@@ -76,23 +90,45 @@ func GormMysql() *gorm.DB {
|
||||
}
|
||||
}
|
||||
|
||||
// gormConfig 根据配置决定是否开启日志
|
||||
//@author: SliverHorn
|
||||
//@function: gormConfig
|
||||
//@description: 根据配置决定是否开启日志
|
||||
//@param: mod bool
|
||||
//@return: *gorm.Config
|
||||
|
||||
func gormConfig(mod bool) *gorm.Config {
|
||||
if global.GVA_CONFIG.Mysql.LogZap {
|
||||
switch global.GVA_CONFIG.Mysql.LogZap {
|
||||
case "Silent":
|
||||
return &gorm.Config{
|
||||
Logger: Default.LogMode(logger.Silent),
|
||||
DisableForeignKeyConstraintWhenMigrating: true,
|
||||
}
|
||||
case "Error":
|
||||
return &gorm.Config{
|
||||
Logger: Default.LogMode(logger.Error),
|
||||
DisableForeignKeyConstraintWhenMigrating: true,
|
||||
}
|
||||
case "Warn":
|
||||
return &gorm.Config{
|
||||
Logger: Default.LogMode(logger.Warn),
|
||||
DisableForeignKeyConstraintWhenMigrating: true,
|
||||
}
|
||||
case "Info":
|
||||
return &gorm.Config{
|
||||
Logger: Default.LogMode(logger.Info),
|
||||
DisableForeignKeyConstraintWhenMigrating: true,
|
||||
}
|
||||
}
|
||||
if mod {
|
||||
return &gorm.Config{
|
||||
Logger: logger.Default.LogMode(logger.Info),
|
||||
DisableForeignKeyConstraintWhenMigrating: true,
|
||||
}
|
||||
} else {
|
||||
return &gorm.Config{
|
||||
Logger: logger.Default.LogMode(logger.Silent),
|
||||
DisableForeignKeyConstraintWhenMigrating: true,
|
||||
default:
|
||||
if mod {
|
||||
return &gorm.Config{
|
||||
Logger: logger.Default.LogMode(logger.Info),
|
||||
DisableForeignKeyConstraintWhenMigrating: true,
|
||||
}
|
||||
} else {
|
||||
return &gorm.Config{
|
||||
Logger: logger.Default.LogMode(logger.Silent),
|
||||
DisableForeignKeyConstraintWhenMigrating: true,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -14,8 +14,8 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
Discard = New(log.New(ioutil.Discard, "", log.LstdFlags), GormConfig{})
|
||||
Default = New(log.New(os.Stdout, "\r\n", log.LstdFlags), GormConfig{
|
||||
Discard = New(log.New(ioutil.Discard, "", log.LstdFlags), log.New(ioutil.Discard, "", log.LstdFlags), GormConfig{})
|
||||
Default = New(log.New(os.Stdout, "\r\n", log.LstdFlags), log.New(os.Stdout, "\r\n", log.LstdFlags), GormConfig{
|
||||
SlowThreshold: 200 * time.Millisecond,
|
||||
LogLevel: logger.Warn,
|
||||
Colorful: true,
|
||||
@@ -31,7 +31,7 @@ type traceRecorder struct {
|
||||
Err error
|
||||
}
|
||||
|
||||
func New(writer Writer, config GormConfig) logger.Interface {
|
||||
func New(writer Writer, gormWriter logger.Writer, config GormConfig) logger.Interface {
|
||||
var (
|
||||
infoStr = "%s\n[info] "
|
||||
warnStr = "%s\n[warn] "
|
||||
@@ -52,6 +52,7 @@ func New(writer Writer, config GormConfig) logger.Interface {
|
||||
|
||||
return &GormLogger{
|
||||
Writer: writer,
|
||||
gormWriter: gormWriter,
|
||||
GormConfig: config,
|
||||
infoStr: infoStr,
|
||||
warnStr: warnStr,
|
||||
@@ -75,6 +76,7 @@ type GormConfig struct {
|
||||
|
||||
type GormLogger struct {
|
||||
Writer
|
||||
gormWriter logger.Writer
|
||||
GormConfig
|
||||
infoStr, warnStr, errStr string
|
||||
traceStr, traceErrStr, traceWarnStr string
|
||||
@@ -135,16 +137,31 @@ func (g *GormLogger) Trace(ctx context.Context, begin time.Time, fc func() (stri
|
||||
}
|
||||
|
||||
func (g *GormLogger) Printf(message string, data ...interface{}) {
|
||||
if global.GVA_CONFIG.Mysql.LogZap == "Info" && !global.GVA_CONFIG.Mysql.LogMode {
|
||||
switch len(data) {
|
||||
case 0:
|
||||
global.GVA_LOG.Info(message)
|
||||
case 1:
|
||||
global.GVA_LOG.Info("gorm", zap.Any("src", data[0]))
|
||||
case 2:
|
||||
global.GVA_LOG.Info("gorm", zap.Any("src", data[0]), zap.Any("duration", data[1]))
|
||||
case 3:
|
||||
global.GVA_LOG.Info("gorm", zap.Any("src", data[0]), zap.Any("duration", data[1]), zap.Any("rows", data[2]))
|
||||
case 4:
|
||||
global.GVA_LOG.Info("gorm", zap.Any("src", data[0]), zap.Any("duration", data[1]), zap.Any("rows", data[2]), zap.Any("sql", data[3]))
|
||||
}
|
||||
return
|
||||
}
|
||||
switch len(data) {
|
||||
case 0:
|
||||
global.GVA_LOG.Info(message)
|
||||
g.gormWriter.Printf(message, "")
|
||||
case 1:
|
||||
global.GVA_LOG.Info("gorm", zap.Any("src", data[0]))
|
||||
g.gormWriter.Printf(message, data[0].(string))
|
||||
case 2:
|
||||
global.GVA_LOG.Info("gorm", zap.Any("src", data[0]), zap.Any("duration", data[1]))
|
||||
g.gormWriter.Printf(message, data[0].(string), data[1].(float64))
|
||||
case 3:
|
||||
global.GVA_LOG.Info("gorm", zap.Any("src", data[0]), zap.Any("duration", data[1]), zap.Any("rows", data[2]))
|
||||
g.gormWriter.Printf(message, data[0].(string), data[1].(float64), data[2].(string))
|
||||
case 4:
|
||||
global.GVA_LOG.Info("gorm", zap.Any("src", data[0]), zap.Any("duration", data[1]), zap.Any("rows", data[2]), zap.Any("sql", data[3]))
|
||||
g.gormWriter.Printf(message, data[0].(string), data[1].(float64), data[2].(string), data[3].(string))
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user