This commit is contained in:
xxjwxc
2022-06-19 11:01:09 +08:00
parent 2dca406fd5
commit 2d6b04f6c6
2 changed files with 19 additions and 9 deletions

View File

@@ -20,13 +20,14 @@ func (lg DbLog) Write(p []byte) (n int, err error) {
}
// GetDBlog 获取默认logger
func GetDBlog() logger.Interface {
func GetDBlog(ignoreRecordNotFoundError bool) logger.Interface {
newLogger := logger.New(
log.New(DbLog{}, "\r\n", log.LstdFlags), // io writer
logger.Config{
SlowThreshold: time.Second, // 慢 SQL 阈值
LogLevel: logger.Error, // Log level
Colorful: false, // 禁用彩色打印
SlowThreshold: time.Second, // 慢 SQL 阈值
LogLevel: logger.Error, // Log level
IgnoreRecordNotFoundError: ignoreRecordNotFoundError, // 忽略ErrRecordNotFound记录未找到错误
Colorful: false, // 禁用彩色打印
},
)
return newLogger

View File

@@ -2,6 +2,9 @@ package mysqldb
import (
"errors"
"log"
"os"
"time"
"github.com/xxjwxc/public/dev"
myerrors "github.com/xxjwxc/public/errors"
@@ -20,19 +23,25 @@ type MySqlDB struct {
}
// OnInitDBOrm init MySqlDB
func OnInitDBOrm(dataSourceName string) (orm *MySqlDB) {
func OnInitDBOrm(dataSourceName string, ignoreRecordNotFoundError bool) (orm *MySqlDB) {
orm = new(MySqlDB)
orm.OnGetDBOrm(dataSourceName)
orm.OnGetDBOrm(dataSourceName, ignoreRecordNotFoundError)
return
}
// OnGetDBOrm get gorm.db
func (i *MySqlDB) OnGetDBOrm(dataSourceName string) *gorm.DB {
func (i *MySqlDB) OnGetDBOrm(dataSourceName string, ignoreRecordNotFoundError bool) *gorm.DB {
if i.DB == nil {
Default := logger.New(log.New(os.Stdout, "\r\n", log.LstdFlags), logger.Config{
SlowThreshold: 200 * time.Millisecond,
LogLevel: logger.Warn,
IgnoreRecordNotFoundError: ignoreRecordNotFoundError,
Colorful: true,
})
var err error
i.DB, err = gorm.Open(mysql.Open(dataSourceName), &gorm.Config{PrepareStmt: false,
NamingStrategy: schema.NamingStrategy{SingularTable: true}, // 全局禁用表名复数
Logger: logger.Default})
Logger: Default}) // logger.Default
if err != nil {
mylog.Error(myerrors.Wrap(err, "Got error when connect database:"+dataSourceName))
return nil
@@ -43,7 +52,7 @@ func (i *MySqlDB) OnGetDBOrm(dataSourceName string) *gorm.DB {
if dev.IsDev() {
i.DB = i.DB.Debug()
} else {
i.DB.Logger = GetDBlog()
i.DB.Logger = GetDBlog(ignoreRecordNotFoundError)
}
return i.DB