MM-41143: Pass a custom logger to morph (#19530)
We create a custom io.Writer to pass to the logger instance. For now, we keep everything to debug as all errors are surfaced back to the server via the API. ```release-note NONE ```
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
3f52bd197a
Коммит
01a3ed0d3e
@@ -8,6 +8,7 @@ import (
|
|||||||
"database/sql"
|
"database/sql"
|
||||||
dbsql "database/sql"
|
dbsql "database/sql"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"log"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -27,7 +28,6 @@ import (
|
|||||||
_ "github.com/golang-migrate/migrate/v4/source/file"
|
_ "github.com/golang-migrate/migrate/v4/source/file"
|
||||||
"github.com/jmoiron/sqlx"
|
"github.com/jmoiron/sqlx"
|
||||||
"github.com/lib/pq"
|
"github.com/lib/pq"
|
||||||
_ "github.com/lib/pq"
|
|
||||||
"github.com/mattermost/gorp"
|
"github.com/mattermost/gorp"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
|
|
||||||
@@ -1012,7 +1012,11 @@ func (ss *SqlStore) migrate(direction migrationDirection) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
engine, err := morph.New(context.Background(), driver, src, morph.WithLock("mm-lock-key"))
|
opts := []morph.EngineOption{
|
||||||
|
morph.WithLogger(log.New(&morphWriter{}, "", log.Lshortfile)),
|
||||||
|
morph.WithLock("mm-lock-key"),
|
||||||
|
}
|
||||||
|
engine, err := morph.New(context.Background(), driver, src, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -147,3 +147,14 @@ func constructArrayArgs(ids []string) (string, []interface{}) {
|
|||||||
|
|
||||||
return "(" + placeholder.String() + ")", values
|
return "(" + placeholder.String() + ")", values
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// morphWriter is a target to pass to the logger instance of morph.
|
||||||
|
// For now, everything is just logged at a debug level. If we need to log
|
||||||
|
// errors/warnings from the library also, that needs to be seen later.
|
||||||
|
type morphWriter struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *morphWriter) Write(in []byte) (int, error) {
|
||||||
|
mlog.Debug(string(in))
|
||||||
|
return len(in), nil
|
||||||
|
}
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user