github.com/hyperledger/burrow@v0.34.5-0.20220512172541-77f09336001d/logging/loggers/filter_logger.go (about) 1 package loggers 2 3 import ( 4 "github.com/go-kit/kit/log" 5 "github.com/hyperledger/burrow/logging/structure" 6 ) 7 8 // Filter logger allows us to filter lines logged to it before passing on to underlying 9 // output logger 10 // Creates a logger that removes lines from output when the predicate evaluates true 11 func FilterLogger(outputLogger log.Logger, predicate func(keyvals []interface{}) bool) log.Logger { 12 return log.LoggerFunc(func(keyvals ...interface{}) error { 13 // Always forward signals 14 if structure.Signal(keyvals) != "" || !predicate(keyvals) { 15 return outputLogger.Log(keyvals...) 16 } 17 return nil 18 }) 19 }