A very experimental PLC implementation which uses BFT consensus for decentralization

Use common logging system for badger logs

gbl08ma.com f2fa4ac7 33844138

verified
+37 -9
+29 -1
badgertodbm/badger.go
··· 8 8 "path/filepath" 9 9 10 10 dbm "github.com/cometbft/cometbft-db" 11 + cmtlog "github.com/cometbft/cometbft/libs/log" 11 12 "github.com/dgraph-io/badger/v4" 12 13 ) 13 14 ··· 24 25 errValueNil = errors.New("value cannot be nil") 25 26 ) 26 27 27 - func NewBadgerDB(dbName, dir string) (*badger.DB, *BadgerDB, error) { 28 + func NewBadgerDB(logger cmtlog.Logger, dbName, dir string) (*badger.DB, *BadgerDB, error) { 28 29 // Since Badger doesn't support database names, we join both to obtain 29 30 // the final directory to use for the database. 30 31 path := filepath.Join(dir, dbName) ··· 43 44 // because these large values don't seem to change (unlike the non-leaf nodes within the iavl tree, which are changing all the time), 44 45 // this makes compaction much faster and decreases SSD thrashing 45 46 opts.ValueThreshold = 192 47 + 48 + opts.Logger = &badgerDBLogger{ 49 + underlying: logger, 50 + } 51 + 46 52 return NewBadgerDBWithOptions(opts) 47 53 } 48 54 ··· 322 328 } 323 329 return val 324 330 } 331 + 332 + type badgerDBLogger struct { 333 + underlying cmtlog.Logger 334 + } 335 + 336 + var _ badger.Logger = (*badgerDBLogger)(nil) 337 + 338 + func (l *badgerDBLogger) Errorf(f string, v ...interface{}) { 339 + l.underlying.Error(fmt.Sprintf(f, v...)) 340 + } 341 + 342 + func (l *badgerDBLogger) Warningf(f string, v ...interface{}) { 343 + l.underlying.Error(fmt.Sprintf(f, v...)) 344 + } 345 + 346 + func (l *badgerDBLogger) Infof(f string, v ...interface{}) { 347 + l.underlying.Info(fmt.Sprintf(f, v...)) 348 + } 349 + 350 + func (l *badgerDBLogger) Debugf(f string, v ...interface{}) { 351 + l.underlying.Debug(fmt.Sprintf(f, v...)) 352 + }
+8 -8
main.go
··· 55 55 log.Fatalf("Invalid configuration data: %v", err) 56 56 } 57 57 58 - underlyingTreeDB, treeDB, err := badgertodbm.NewBadgerDB("apptree", config.Config.DBDir()) 58 + logger := cmtlog.NewTMLogger(cmtlog.NewSyncWriter(os.Stdout)) 59 + logger, err := cmtflags.ParseLogLevel(config.LogLevel, logger, bftconfig.DefaultLogLevel) 60 + if err != nil { 61 + log.Fatalf("failed to parse log level: %v", err) 62 + } 63 + 64 + underlyingTreeDB, treeDB, err := badgertodbm.NewBadgerDB(logger.With("module", "treebadger"), "apptree", config.Config.DBDir()) 59 65 if err != nil { 60 66 log.Fatalf("failed to create application tree database: %v", err) 61 67 } 62 68 63 - underlyingIndexDB, indexDB, err := badgertodbm.NewBadgerDB("appindex", config.Config.DBDir()) 69 + underlyingIndexDB, indexDB, err := badgertodbm.NewBadgerDB(logger.With("module", "indexbadger"), "appindex", config.Config.DBDir()) 64 70 if err != nil { 65 71 log.Fatalf("failed to create application index database: %v", err) 66 72 } ··· 99 105 100 106 appContext, cancelAppContext := context.WithCancel(context.Background()) 101 107 defer cancelAppContext() 102 - 103 - logger := cmtlog.NewTMLogger(cmtlog.NewSyncWriter(os.Stdout)) 104 - logger, err = cmtflags.ParseLogLevel(config.LogLevel, logger, bftconfig.DefaultLogLevel) 105 - if err != nil { 106 - log.Fatalf("failed to parse log level: %v", err) 107 - } 108 108 109 109 app, txFactory, plc, cleanup, err := abciapp.NewDIDPLCApplication( 110 110 appContext,