diff --git a/internal/datastore/mysql/datastore.go b/internal/datastore/mysql/datastore.go index 3ccd1b8327..ce9c44937d 100644 --- a/internal/datastore/mysql/datastore.go +++ b/internal/datastore/mysql/datastore.go @@ -132,12 +132,12 @@ func newMySQLDatastore(ctx context.Context, uri string, replicaIndex int, option return nil, fmt.Errorf(errUnableToInstantiate, err) } - parsedURI, err := mysql.ParseDSN(uri) + mysqlConfig, err := mysql.ParseDSN(uri) if err != nil { return nil, common.RedactAndLogSensitiveConnString(ctx, "NewMySQLDatastore: could not parse connection URI", err, uri) } - if !parsedURI.ParseTime { + if !mysqlConfig.ParseTime { return nil, errors.New("error in NewMySQLDatastore: connection URI for MySQL datastore must include `parseTime=true` as a query parameter; see https://spicedb.dev/d/parse-time-mysql for more details") } @@ -150,13 +150,16 @@ func newMySQLDatastore(ctx context.Context, uri string, replicaIndex int, option } } - err = mysqlCommon.MaybeAddCredentialsProviderHook(parsedURI, credentialsProvider) + err = mysqlCommon.MaybeAddCredentialsProviderHook(mysqlConfig, credentialsProvider) if err != nil { return nil, err } + // Feed our logger through to the Connector + mysqlConfig.Logger = debugLogger{} + // Call NewConnector with the existing parsed configuration to preserve the BeforeConnect added by the CredentialsProvider - connector, err := mysql.NewConnector(parsedURI) + connector, err := mysql.NewConnector(mysqlConfig) if err != nil { return nil, common.RedactAndLogSensitiveConnString(ctx, "NewMySQLDatastore: failed to create connector", err, uri) } @@ -669,3 +672,9 @@ func buildLivingObjectFilterForRevision(revision datastore.Revision) queryFilter func currentlyLivingObjects(original sq.SelectBuilder) sq.SelectBuilder { return original.Where(sq.Eq{colDeletedTxn: liveDeletedTxnID}) } + +type debugLogger struct{} + +func (debugLogger) Print(v ...any) { + log.Logger.Debug().CallerSkipFrame(1).Msg(fmt.Sprint(v...)) +} diff --git a/internal/logging/logger.go b/internal/logging/logger.go index 1c13ea5921..1e9de0a773 100644 --- a/internal/logging/logger.go +++ b/internal/logging/logger.go @@ -2,7 +2,6 @@ package logging import ( "context" - "fmt" "github.com/rs/zerolog" ) @@ -39,11 +38,3 @@ func WithLevel(level zerolog.Level) *zerolog.Event { return Logger.WithLevel(lev func Log() *zerolog.Event { return Logger.Log() } func Ctx(ctx context.Context) *zerolog.Logger { return zerolog.Ctx(ctx) } - -func Print(v ...interface{}) { - Logger.Debug().CallerSkipFrame(1).Msg(fmt.Sprint(v...)) -} - -func Printf(format string, v ...interface{}) { - Logger.Debug().CallerSkipFrame(1).Msgf(format, v...) -}