Feat: db logger

pull/21/head
zijiren233 3 years ago
parent 7998654ede
commit 9f189cd504

@ -5,6 +5,7 @@ import (
"fmt" "fmt"
"path/filepath" "path/filepath"
"strings" "strings"
"time"
"github.com/glebarez/sqlite" "github.com/glebarez/sqlite"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
@ -14,6 +15,7 @@ import (
"gorm.io/driver/mysql" "gorm.io/driver/mysql"
"gorm.io/driver/postgres" "gorm.io/driver/postgres"
"gorm.io/gorm" "gorm.io/gorm"
"gorm.io/gorm/logger"
) )
func InitDatabase(ctx context.Context) error { func InitDatabase(ctx context.Context) error {
@ -50,7 +52,7 @@ func InitDatabase(ctx context.Context) error {
DontSupportRenameColumn: true, DontSupportRenameColumn: true,
SkipInitializeWithVersion: false, SkipInitializeWithVersion: false,
}) })
opts = append(opts, &gorm.Config{TranslateError: true}) // opts = append(opts, &gorm.Config{})
case conf.DatabaseTypeSqlite3: case conf.DatabaseTypeSqlite3:
var dsn string var dsn string
if conf.Conf.Database.DBName == "memory" || strings.HasPrefix(conf.Conf.Database.DBName, ":memory:") { if conf.Conf.Database.DBName == "memory" || strings.HasPrefix(conf.Conf.Database.DBName, ":memory:") {
@ -67,7 +69,7 @@ func InitDatabase(ctx context.Context) error {
log.Infof("sqlite3 database file: %s", conf.Conf.Database.DBName) log.Infof("sqlite3 database file: %s", conf.Conf.Database.DBName)
} }
dialector = sqlite.Open(dsn) dialector = sqlite.Open(dsn)
opts = append(opts, &gorm.Config{TranslateError: true}) // opts = append(opts, &gorm.Config{})
case conf.DatabaseTypePostgres: case conf.DatabaseTypePostgres:
var dsn string var dsn string
if conf.Conf.Database.Port == 0 { if conf.Conf.Database.Port == 0 {
@ -94,13 +96,36 @@ func InitDatabase(ctx context.Context) error {
DSN: dsn, DSN: dsn,
PreferSimpleProtocol: true, PreferSimpleProtocol: true,
}) })
opts = append(opts, &gorm.Config{TranslateError: true}) // opts = append(opts, &gorm.Config{})
default: default:
log.Fatalf("unknown database type: %s", conf.Conf.Database.Type) log.Fatalf("unknown database type: %s", conf.Conf.Database.Type)
} }
opts = append(opts, &gorm.Config{
TranslateError: true,
Logger: newDBLogger(),
})
d, err := gorm.Open(dialector, opts...) d, err := gorm.Open(dialector, opts...)
if err != nil { if err != nil {
log.Fatalf("failed to connect database: %s", err.Error()) log.Fatalf("failed to connect database: %s", err.Error())
} }
return db.Init(d) return db.Init(d)
} }
func newDBLogger() logger.Interface {
var logLevel logger.LogLevel
if flags.Dev {
logLevel = logger.Info
} else {
logLevel = logger.Warn
}
return logger.New(
log.StandardLogger(),
logger.Config{
SlowThreshold: time.Second,
LogLevel: logLevel,
IgnoreRecordNotFoundError: true,
ParameterizedQueries: true,
Colorful: false,
},
)
}

Loading…
Cancel
Save