github.com/artisanhe/tools@v1.0.1-0.20210607022958-19a8fef2eb04/sqlx/mysql_logger_driver/driver.go (about) 1 package mysql_logger_driver 2 3 import ( 4 "database/sql" 5 "database/sql/driver" 6 "strings" 7 8 "github.com/fatih/color" 9 "github.com/go-sql-driver/mysql" 10 "github.com/sirupsen/logrus" 11 ) 12 13 type LoggingDriver struct { 14 Driver string 15 } 16 17 func (d LoggingDriver) Open(dsn string) (driver.Conn, error) { 18 mysqlDriver := &mysql.MySQLDriver{} 19 cfg, err := mysql.ParseDSN(dsn) 20 if err != nil { 21 panic(err) 22 } 23 cfg.Passwd = strings.Repeat("*", len(cfg.Passwd)) 24 25 conn, err := mysqlDriver.Open(dsn) 26 if err != nil { 27 logrus.Errorf("failed to open connection: %s %s", cfg.FormatDSN(), err) 28 return nil, err 29 } 30 logrus.Debugf(color.YellowString("connected %s", cfg.FormatDSN())) 31 32 return &loggerConn{cfg: cfg, conn: conn}, nil 33 } 34 35 func init() { 36 sql.Register("logger:mysql", &LoggingDriver{"mysql"}) 37 }