A very experimental PLC implementation which uses BFT consensus for decentralization
19
fork

Configure Feed

Select the types of activity you want to include in your feed.

Use common logging system for badger logs

gbl08ma f2fa4ac7 33844138

+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,