7bdd7023f4
This commit creates a new package as sub-package within the routing package: chainview. This package is centered around a single interface definition: the FilteredChainView. This interface is to be used to allow the routing package to watch a _subset_ of the UTXO set for any modifications. In the case of LN, the subset of the UTXO set that we care about is the set of currently opened channels. In a future commit the routing package will be modified to remove the current full block scanning with processing of FilteredBlock notification, and proper updates to the filter as observed by the FilteredChainView.
55 lines
1.3 KiB
Go
55 lines
1.3 KiB
Go
package chainview
|
|
|
|
import (
|
|
"errors"
|
|
"io"
|
|
|
|
"github.com/btcsuite/btclog"
|
|
)
|
|
|
|
// log is a logger that is initialized with no output filters. This
|
|
// means the package will not perform any logging by default until the caller
|
|
// requests it.
|
|
var log btclog.Logger
|
|
|
|
// The default amount of logging is none.
|
|
func init() {
|
|
DisableLog()
|
|
}
|
|
|
|
// DisableLog disables all library log output. Logging output is disabled
|
|
// by default until either UseLogger or SetLogWriter are called.
|
|
func DisableLog() {
|
|
log = btclog.Disabled
|
|
}
|
|
|
|
// UseLogger uses a specified Logger to output package logging info.
|
|
// This should be used in preference to SetLogWriter if the caller is also
|
|
// using btclog.
|
|
func UseLogger(logger btclog.Logger) {
|
|
log = logger
|
|
}
|
|
|
|
// SetLogWriter uses a specified io.Writer to output package logging info.
|
|
// This allows a caller to direct package logging output without needing a
|
|
// dependency on seelog. If the caller is also using btclog, UseLogger should
|
|
// be used instead.
|
|
func SetLogWriter(w io.Writer, level string) error {
|
|
if w == nil {
|
|
return errors.New("nil writer")
|
|
}
|
|
|
|
lvl, ok := btclog.LogLevelFromString(level)
|
|
if !ok {
|
|
return errors.New("invalid log level")
|
|
}
|
|
|
|
l, err := btclog.NewLoggerFromWriter(w, lvl)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
UseLogger(l)
|
|
return nil
|
|
}
|