diff --git a/wallet/log.go b/wallet/log.go index b1a1b67..1756ea8 100644 --- a/wallet/log.go +++ b/wallet/log.go @@ -8,6 +8,7 @@ import ( "github.com/btcsuite/btclog" "github.com/btcsuite/btcwallet/waddrmgr" "github.com/btcsuite/btcwallet/walletdb/migration" + "github.com/btcsuite/btcwallet/wtxmgr" ) // log is a logger that is initialized with no output filters. This @@ -34,6 +35,7 @@ func UseLogger(logger btclog.Logger) { migration.UseLogger(logger) waddrmgr.UseLogger(logger) + wtxmgr.UseLogger(logger) } // LogClosure is a closure that can be printed with %v to be used to diff --git a/wtxmgr/log.go b/wtxmgr/log.go index 05d92b5..f32722a 100644 --- a/wtxmgr/log.go +++ b/wtxmgr/log.go @@ -9,12 +9,17 @@ 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.Disabled +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(btclog.Disabled) } // UseLogger uses a specified Logger to output package logging info. @@ -23,3 +28,20 @@ func DisableLog() { 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) +}