diff --git a/api/config/config.go b/api/config/config.go index e57d3d6..432be2e 100644 --- a/api/config/config.go +++ b/api/config/config.go @@ -77,8 +77,13 @@ func (c *ServerConfig) PopulateCalculatedFields() { logger.SetLogLevel(logger.LogLevelInfo) } - if c.PersistDataFilePath != "" { - fileInfo, _ := os.Stat(c.PersistDataFilePath) + fileInfo, err := os.Stat(c.PersistDataFilePath) + if c.PersistDataFilePath != "" && !os.IsNotExist(err) { + if err != nil { + logger.ErrorLn("Failed to get file info for persist path:", err) + os.Exit(1) + } + if c.DataStore == DataStoreJson && fileInfo.IsDir() { logger.ErrorLn("--Persist cannot be a directory when using json data store") os.Exit(1) diff --git a/internal/datastore/badger_datastore/badger_datastore.go b/internal/datastore/badger_datastore/badger_datastore.go index 67664be..bc13504 100644 --- a/internal/datastore/badger_datastore/badger_datastore.go +++ b/internal/datastore/badger_datastore/badger_datastore.go @@ -15,6 +15,7 @@ type BadgerDataStoreOptions struct { func NewBadgerDataStore(options BadgerDataStoreOptions) *BadgerDataStore { badgerOpts := badger.DefaultOptions(options.PersistDataFilePath) + badgerOpts = badgerOpts.WithLogger(newBadgerLogger()) if options.PersistDataFilePath == "" { badgerOpts = badgerOpts.WithInMemory(true) } diff --git a/internal/datastore/badger_datastore/badger_logger.go b/internal/datastore/badger_datastore/badger_logger.go new file mode 100644 index 0000000..8c1f35f --- /dev/null +++ b/internal/datastore/badger_datastore/badger_logger.go @@ -0,0 +1,28 @@ +package badgerdatastore + +import ( + "github.com/dgraph-io/badger/v4" + "github.com/pikami/cosmium/internal/logger" +) + +type badgerLogger struct{} + +func newBadgerLogger() badger.Logger { + return &badgerLogger{} +} + +func (l *badgerLogger) Errorf(format string, v ...interface{}) { + logger.Errorf(format, v...) +} + +func (l *badgerLogger) Warningf(format string, v ...interface{}) { + logger.Infof(format, v...) +} + +func (l *badgerLogger) Infof(format string, v ...interface{}) { + logger.Infof(format, v...) +} + +func (l *badgerLogger) Debugf(format string, v ...interface{}) { + logger.Debugf(format, v...) +}