diff --git a/waddrmgr/log.go b/waddrmgr/log.go new file mode 100644 index 0000000..44fa6e0 --- /dev/null +++ b/waddrmgr/log.go @@ -0,0 +1,43 @@ +package waddrmgr + +import "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() { + UseLogger(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 +} + +// LogClosure is a closure that can be printed with %v to be used to +// generate expensive-to-create data for a detailed log level and avoid doing +// the work if the data isn't printed. +type logClosure func() string + +// String invokes the log closure and returns the results string. +func (c logClosure) String() string { + return c() +} + +// newLogClosure returns a new closure over the passed function which allows +// it to be used as a parameter in a logging function that is only invoked when +// the logging level is such that the message will actually be logged. +func newLogClosure(c func() string) logClosure { + return logClosure(c) +} diff --git a/wallet/log.go b/wallet/log.go index b1a8f97..b1a1b67 100644 --- a/wallet/log.go +++ b/wallet/log.go @@ -6,6 +6,7 @@ package wallet import ( "github.com/btcsuite/btclog" + "github.com/btcsuite/btcwallet/waddrmgr" "github.com/btcsuite/btcwallet/walletdb/migration" ) @@ -32,6 +33,7 @@ func UseLogger(logger btclog.Logger) { log = logger migration.UseLogger(logger) + waddrmgr.UseLogger(logger) } // LogClosure is a closure that can be printed with %v to be used to