diff --git a/chanbackup/log.go b/chanbackup/log.go index 730fbc9e4..34eb9e93f 100644 --- a/chanbackup/log.go +++ b/chanbackup/log.go @@ -27,19 +27,3 @@ func DisableLog() { func UseLogger(logger btclog.Logger) { log = logger } - -// logClosure is used to provide a closure over expensive logging operations so -// don't have to be performed when the logging level doesn't warrant it. -type logClosure func() string - -// String invokes the underlying function and returns the result. -func (c logClosure) String() string { - return c() -} - -// newLogClosure returns a new closure over a function that returns a string -// which itself provides a Stringer interface so that it can be used with the -// logging system. -func newLogClosure(c func() string) logClosure { - return logClosure(c) -} diff --git a/chanbackup/pubsub.go b/chanbackup/pubsub.go index 987678d92..7652d3654 100644 --- a/chanbackup/pubsub.go +++ b/chanbackup/pubsub.go @@ -10,6 +10,7 @@ import ( "github.com/btcsuite/btcd/wire" "github.com/lightningnetwork/lnd/channeldb" "github.com/lightningnetwork/lnd/keychain" + "github.com/lightningnetwork/lnd/lnutils" ) // Swapper is an interface that allows the chanbackup.SubSwapper to update the @@ -278,9 +279,8 @@ func (s *SubSwapper) backupUpdater() { ) for i, closedChan := range chanUpdate.ClosedChans { log.Debugf("Removing channel %v from backup "+ - "state", newLogClosure(func() string { - return chanUpdate.ClosedChans[i].String() - })) + "state", lnutils.NewLogClosure( + chanUpdate.ClosedChans[i].String)) delete(s.backupState, closedChan) diff --git a/chanbackup/recover.go b/chanbackup/recover.go index ebd48dccf..e36a6badb 100644 --- a/chanbackup/recover.go +++ b/chanbackup/recover.go @@ -7,6 +7,7 @@ import ( "github.com/davecgh/go-spew/spew" "github.com/lightningnetwork/lnd/channeldb" "github.com/lightningnetwork/lnd/keychain" + "github.com/lightningnetwork/lnd/lnutils" ) // ChannelRestorer is an interface that allows the Recover method to map the @@ -63,7 +64,7 @@ func Recover(backups []Single, restorer ChannelRestorer, log.Infof("Attempting to connect to node=%x (addrs=%v) to "+ "restore ChannelPoint(%v)", backup.RemoteNodePub.SerializeCompressed(), - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(backups[i].Addresses) }), backup.FundingOutpoint) diff --git a/contractcourt/breach_arbitrator.go b/contractcourt/breach_arbitrator.go index 96fa689c3..aab4e943d 100644 --- a/contractcourt/breach_arbitrator.go +++ b/contractcourt/breach_arbitrator.go @@ -20,6 +20,7 @@ import ( "github.com/lightningnetwork/lnd/kvdb" "github.com/lightningnetwork/lnd/labels" "github.com/lightningnetwork/lnd/lntypes" + "github.com/lightningnetwork/lnd/lnutils" "github.com/lightningnetwork/lnd/lnwallet" "github.com/lightningnetwork/lnd/lnwallet/chainfee" ) @@ -732,9 +733,10 @@ justiceTxBroadcast: } finalTx := justiceTxs.spendAll - brarLog.Debugf("Broadcasting justice tx: %v", newLogClosure(func() string { - return spew.Sdump(finalTx) - })) + brarLog.Debugf("Broadcasting justice tx: %v", lnutils.NewLogClosure( + func() string { + return spew.Sdump(finalTx) + })) // We'll now attempt to broadcast the transaction which finalized the // channel's retribution against the cheating counter party. @@ -857,7 +859,7 @@ Loop: brarLog.Debugf("Broadcasting justice tx "+ "spending commitment outs: %v", - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(tx) })) @@ -874,7 +876,7 @@ Loop: brarLog.Debugf("Broadcasting justice tx "+ "spending HTLC outs: %v", - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(tx) })) @@ -891,7 +893,7 @@ Loop: brarLog.Debugf("Broadcasting justice tx "+ "spending second-level HTLC output: %v", - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(tx) })) diff --git a/contractcourt/chain_watcher.go b/contractcourt/chain_watcher.go index f1733ad1f..962a239e7 100644 --- a/contractcourt/chain_watcher.go +++ b/contractcourt/chain_watcher.go @@ -20,6 +20,7 @@ import ( "github.com/lightningnetwork/lnd/channeldb" "github.com/lightningnetwork/lnd/fn" "github.com/lightningnetwork/lnd/input" + "github.com/lightningnetwork/lnd/lnutils" "github.com/lightningnetwork/lnd/lnwallet" "github.com/lightningnetwork/lnd/lnwire" ) @@ -1254,7 +1255,7 @@ func (c *chainWatcher) dispatchContractBreach(spendEvent *chainntnfs.SpendDetail spendHeight := uint32(spendEvent.SpendingHeight) log.Debugf("Punishment breach retribution created: %v", - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { retribution.KeyRing.LocalHtlcKey = nil retribution.KeyRing.RemoteHtlcKey = nil retribution.KeyRing.ToLocalKey = nil diff --git a/contractcourt/channel_arbitrator.go b/contractcourt/channel_arbitrator.go index cda0d4e1f..854bff5f6 100644 --- a/contractcourt/channel_arbitrator.go +++ b/contractcourt/channel_arbitrator.go @@ -24,6 +24,7 @@ import ( "github.com/lightningnetwork/lnd/kvdb" "github.com/lightningnetwork/lnd/labels" "github.com/lightningnetwork/lnd/lntypes" + "github.com/lightningnetwork/lnd/lnutils" "github.com/lightningnetwork/lnd/lnwallet" "github.com/lightningnetwork/lnd/lnwire" "github.com/lightningnetwork/lnd/sweep" @@ -465,7 +466,7 @@ func (c *ChannelArbitrator) Start(state *chanArbStartState) error { } log.Debugf("Starting ChannelArbitrator(%v), htlc_set=%v, state=%v", - c.cfg.ChanPoint, newLogClosure(func() string { + c.cfg.ChanPoint, lnutils.NewLogClosure(func() string { return spew.Sdump(c.activeHTLCs) }), state.currentState, ) @@ -959,7 +960,7 @@ func (c *ChannelArbitrator) stateStep( // commitment transaction has already been broadcast. log.Tracef("ChannelArbitrator(%v): logging chain_actions=%v", c.cfg.ChanPoint, - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(chainActions) })) @@ -1097,7 +1098,7 @@ func (c *ChannelArbitrator) stateStep( log.Infof("Broadcasting force close transaction %v, "+ "ChannelPoint(%v): %v", closeTx.TxHash(), c.cfg.ChanPoint, - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(closeTx) })) @@ -1224,7 +1225,7 @@ func (c *ChannelArbitrator) stateStep( if len(pktsToSend) != 0 { log.Debugf("ChannelArbitrator(%v): sending "+ "resolution message=%v", c.cfg.ChanPoint, - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(pktsToSend) })) @@ -2742,7 +2743,7 @@ func (c *ChannelArbitrator) notifyContractUpdate(upd *ContractUpdate) { log.Tracef("ChannelArbitrator(%v): fresh set of htlcs=%v", c.cfg.ChanPoint, - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(upd) }), ) diff --git a/contractcourt/log.go b/contractcourt/log.go index 2891781e8..2e52cc97d 100644 --- a/contractcourt/log.go +++ b/contractcourt/log.go @@ -51,19 +51,3 @@ func UseBreachLogger(logger btclog.Logger) { func UseNurseryLogger(logger btclog.Logger) { utxnLog = logger } - -// logClosure is used to provide a closure over expensive logging operations so -// don't have to be performed when the logging level doesn't warrant it. -type logClosure func() string - -// String invokes the underlying function and returns the result. -func (c logClosure) String() string { - return c() -} - -// newLogClosure returns a new closure over a function that returns a string -// which itself provides a Stringer interface so that it can be used with the -// logging system. -func newLogClosure(c func() string) logClosure { - return logClosure(c) -} diff --git a/contractcourt/utxonursery.go b/contractcourt/utxonursery.go index f419881da..95e0778e6 100644 --- a/contractcourt/utxonursery.go +++ b/contractcourt/utxonursery.go @@ -18,6 +18,7 @@ import ( "github.com/lightningnetwork/lnd/fn" "github.com/lightningnetwork/lnd/input" "github.com/lightningnetwork/lnd/labels" + "github.com/lightningnetwork/lnd/lnutils" "github.com/lightningnetwork/lnd/lnwallet" "github.com/lightningnetwork/lnd/sweep" ) @@ -947,7 +948,7 @@ func (u *UtxoNursery) waitForSweepConf(classHeight uint32, func (u *UtxoNursery) sweepCribOutput(classHeight uint32, baby *babyOutput) error { utxnLog.Infof("Publishing CLTV-delayed HTLC output using timeout tx "+ "(txid=%v): %v", baby.timeoutTx.TxHash(), - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(baby.timeoutTx) }), ) diff --git a/discovery/bootstrapper.go b/discovery/bootstrapper.go index 67dbc7e23..9e3c40b03 100644 --- a/discovery/bootstrapper.go +++ b/discovery/bootstrapper.go @@ -16,6 +16,7 @@ import ( "github.com/btcsuite/btcd/btcutil/bech32" "github.com/davecgh/go-spew/spew" "github.com/lightningnetwork/lnd/autopilot" + "github.com/lightningnetwork/lnd/lnutils" "github.com/lightningnetwork/lnd/lnwire" "github.com/lightningnetwork/lnd/tor" "github.com/miekg/dns" @@ -431,7 +432,7 @@ search: } log.Tracef("Retrieved SRV records from dns seed: %v", - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(addrs) }), ) diff --git a/discovery/log.go b/discovery/log.go index bd2004d3d..f09e7fb71 100644 --- a/discovery/log.go +++ b/discovery/log.go @@ -27,19 +27,3 @@ func DisableLog() { func UseLogger(logger btclog.Logger) { log = logger } - -// logClosure is used to provide a closure over expensive logging operations -// so don't have to be performed when the logging level doesn't warrant it. -type logClosure func() string - -// String invokes the underlying function and returns the result. -func (c logClosure) String() string { - return c() -} - -// newLogClosure returns a new closure over a function that returns a string -// which itself provides a Stringer interface so that it can be used with the -// logging system. -func newLogClosure(c func() string) logClosure { - return logClosure(c) -} diff --git a/graph/builder.go b/graph/builder.go index 2436f3176..01ea97cf9 100644 --- a/graph/builder.go +++ b/graph/builder.go @@ -1432,7 +1432,9 @@ func (b *Builder) processUpdate(msg interface{}, } log.Tracef("New channel update applied: %v", - newLogClosure(func() string { return spew.Sdump(msg) })) + lnutils.NewLogClosure(func() string { + return spew.Sdump(msg) + })) b.stats.incNumChannelUpdates() default: diff --git a/graph/log.go b/graph/log.go index cd31dae11..7d2f741c6 100644 --- a/graph/log.go +++ b/graph/log.go @@ -29,19 +29,3 @@ func DisableLog() { func UseLogger(logger btclog.Logger) { log = logger } - -// logClosure is used to provide a closure over expensive logging operations so -// don't have to be performed when the logging level doesn't warrant it. -type logClosure func() string - -// String invokes the underlying function and returns the result. -func (c logClosure) String() string { - return c() -} - -// newLogClosure returns a new closure over a function that returns a string -// which itself provides a Stringer interface so that it can be used with the -// logging system. -func newLogClosure(c func() string) logClosure { - return logClosure(c) -} diff --git a/htlcswitch/circuit_map.go b/htlcswitch/circuit_map.go index 9b26a1d07..06477ef98 100644 --- a/htlcswitch/circuit_map.go +++ b/htlcswitch/circuit_map.go @@ -10,6 +10,7 @@ import ( "github.com/lightningnetwork/lnd/channeldb" "github.com/lightningnetwork/lnd/htlcswitch/hop" "github.com/lightningnetwork/lnd/kvdb" + "github.com/lightningnetwork/lnd/lnutils" "github.com/lightningnetwork/lnd/lnwire" ) @@ -800,9 +801,10 @@ func (cm *circuitMap) CommitCircuits(circuits ...*PaymentCircuit) ( inKeys = append(inKeys, circuit.Incoming) } - log.Tracef("Committing fresh circuits: %v", newLogClosure(func() string { - return spew.Sdump(inKeys) - })) + log.Tracef("Committing fresh circuits: %v", lnutils.NewLogClosure( + func() string { + return spew.Sdump(inKeys) + })) actions := &CircuitFwdActions{} @@ -948,9 +950,10 @@ func (cm *circuitMap) OpenCircuits(keystones ...Keystone) error { return nil } - log.Tracef("Opening finalized circuits: %v", newLogClosure(func() string { - return spew.Sdump(keystones) - })) + log.Tracef("Opening finalized circuits: %v", lnutils.NewLogClosure( + func() string { + return spew.Sdump(keystones) + })) // Check that all keystones correspond to committed-but-unopened // circuits. @@ -1078,9 +1081,10 @@ func (cm *circuitMap) CloseCircuit(outKey CircuitKey) (*PaymentCircuit, error) { // circuit was already cleaned up at a different point in time. func (cm *circuitMap) DeleteCircuits(inKeys ...CircuitKey) error { - log.Tracef("Deleting resolved circuits: %v", newLogClosure(func() string { - return spew.Sdump(inKeys) - })) + log.Tracef("Deleting resolved circuits: %v", lnutils.NewLogClosure( + func() string { + return spew.Sdump(inKeys) + })) var ( closingCircuits = make(map[CircuitKey]struct{}) diff --git a/htlcswitch/link.go b/htlcswitch/link.go index c0c828f83..20b32596f 100644 --- a/htlcswitch/link.go +++ b/htlcswitch/link.go @@ -25,6 +25,7 @@ import ( "github.com/lightningnetwork/lnd/invoices" "github.com/lightningnetwork/lnd/lnpeer" "github.com/lightningnetwork/lnd/lntypes" + "github.com/lightningnetwork/lnd/lnutils" "github.com/lightningnetwork/lnd/lnwallet" "github.com/lightningnetwork/lnd/lnwallet/chainfee" "github.com/lightningnetwork/lnd/lnwire" @@ -2536,10 +2537,10 @@ func (l *channelLink) updateCommitTx() error { l.log.Tracef("revocation window exhausted, unable to send: "+ "%v, pend_updates=%v, dangling_closes%v", l.channel.PendingLocalUpdateCount(), - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(l.openedCircuits) }), - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(l.closedCircuits) }), ) diff --git a/htlcswitch/log.go b/htlcswitch/log.go index 5749de09e..79259be91 100644 --- a/htlcswitch/log.go +++ b/htlcswitch/log.go @@ -31,19 +31,3 @@ func UseLogger(logger btclog.Logger) { log = logger hop.UseLogger(logger) } - -// logClosure is used to provide a closure over expensive logging operations so -// don't have to be performed when the logging level doesn't warrant it. -type logClosure func() string - -// String invokes the underlying function and returns the result. -func (c logClosure) String() string { - return c() -} - -// newLogClosure returns a new closure over a function that returns a string -// which itself provides a Stringer interface so that it can be used with the -// logging system. -func newLogClosure(c func() string) logClosure { - return logClosure(c) -} diff --git a/htlcswitch/switch.go b/htlcswitch/switch.go index d473d8422..7f2661212 100644 --- a/htlcswitch/switch.go +++ b/htlcswitch/switch.go @@ -21,6 +21,7 @@ import ( "github.com/lightningnetwork/lnd/htlcswitch/hop" "github.com/lightningnetwork/lnd/kvdb" "github.com/lightningnetwork/lnd/lntypes" + "github.com/lightningnetwork/lnd/lnutils" "github.com/lightningnetwork/lnd/lnwallet" "github.com/lightningnetwork/lnd/lnwallet/chainfee" "github.com/lightningnetwork/lnd/lnwire" @@ -613,9 +614,10 @@ func (s *Switch) SendHTLC(firstHop lnwire.ShortChannelID, attemptID uint64, func (s *Switch) UpdateForwardingPolicies( chanPolicies map[wire.OutPoint]models.ForwardingPolicy) { - log.Tracef("Updating link policies: %v", newLogClosure(func() string { - return spew.Sdump(chanPolicies) - })) + log.Tracef("Updating link policies: %v", lnutils.NewLogClosure( + func() string { + return spew.Sdump(chanPolicies) + })) s.indexMtx.RLock() @@ -1213,7 +1215,8 @@ func (s *Switch) handlePacketForward(packet *htlcPacket) error { ) log.Warnf("unable to find err source for "+ "outgoing_link=%v, errors=%v", - packet.outgoingChanID, newLogClosure(func() string { + packet.outgoingChanID, + lnutils.NewLogClosure(func() string { return spew.Sdump(linkErrs) })) } @@ -1994,8 +1997,9 @@ out: continue } - log.Tracef("Acked %d settle fails: %v", len(s.pendingSettleFails), - newLogClosure(func() string { + log.Tracef("Acked %d settle fails: %v", + len(s.pendingSettleFails), + lnutils.NewLogClosure(func() string { return spew.Sdump(s.pendingSettleFails) })) diff --git a/lnrpc/devrpc/log.go b/lnrpc/devrpc/log.go index 2ff536b84..9cae145e5 100644 --- a/lnrpc/devrpc/log.go +++ b/lnrpc/devrpc/log.go @@ -27,19 +27,3 @@ func DisableLog() { func UseLogger(logger btclog.Logger) { log = logger } - -// logClosure is used to provide a closure over expensive logging operations so -// don't have to be performed when the logging level doesn't warrant it. -type logClosure func() string // nolint:unused - -// String invokes the underlying function and returns the result. -func (c logClosure) String() string { - return c() -} - -// newLogClosure returns a new closure over a function that returns a string -// which itself provides a Stringer interface so that it can be used with the -// logging system. -func newLogClosure(c func() string) logClosure { // nolint:unused - return logClosure(c) -} diff --git a/lnrpc/invoicesrpc/addinvoice.go b/lnrpc/invoicesrpc/addinvoice.go index 4b55f3f0d..d12dc11d7 100644 --- a/lnrpc/invoicesrpc/addinvoice.go +++ b/lnrpc/invoicesrpc/addinvoice.go @@ -20,6 +20,7 @@ import ( "github.com/lightningnetwork/lnd/channeldb/models" "github.com/lightningnetwork/lnd/invoices" "github.com/lightningnetwork/lnd/lntypes" + "github.com/lightningnetwork/lnd/lnutils" "github.com/lightningnetwork/lnd/lnwire" "github.com/lightningnetwork/lnd/netann" "github.com/lightningnetwork/lnd/routing" @@ -473,7 +474,7 @@ func AddInvoice(ctx context.Context, cfg *AddInvoiceConfig, } log.Tracef("[addinvoice] adding new invoice %v", - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(newInvoice) }), ) diff --git a/lnrpc/invoicesrpc/log.go b/lnrpc/invoicesrpc/log.go index 8429ee51c..f3644fdb5 100644 --- a/lnrpc/invoicesrpc/log.go +++ b/lnrpc/invoicesrpc/log.go @@ -27,19 +27,3 @@ func DisableLog() { func UseLogger(logger btclog.Logger) { log = logger } - -// logClosure is used to provide a closure over expensive logging operations so -// don't have to be performed when the logging level doesn't warrant it. -type logClosure func() string - -// String invokes the underlying function and returns the result. -func (c logClosure) String() string { - return c() -} - -// newLogClosure returns a new closure over a function that returns a string -// which itself provides a Stringer interface so that it can be used with the -// logging system. -func newLogClosure(c func() string) logClosure { - return logClosure(c) -} diff --git a/lnutils/log.go b/lnutils/log.go new file mode 100644 index 000000000..4bfb64b07 --- /dev/null +++ b/lnutils/log.go @@ -0,0 +1,17 @@ +package lnutils + +// LogClosure is used to provide a closure over expensive logging operations so +// don't have to be performed when the logging level doesn't warrant it. +type LogClosure func() string + +// String invokes the underlying function and returns the result. +func (c LogClosure) String() string { + return c() +} + +// NewLogClosure returns a new closure over a function that returns a string +// which itself provides a Stringer interface so that it can be used with the +// logging system. +func NewLogClosure(c func() string) LogClosure { + return LogClosure(c) +} diff --git a/lnwallet/chainfee/estimator.go b/lnwallet/chainfee/estimator.go index 3cab0556a..d9a402964 100644 --- a/lnwallet/chainfee/estimator.go +++ b/lnwallet/chainfee/estimator.go @@ -15,6 +15,7 @@ import ( "github.com/btcsuite/btcd/btcutil" "github.com/btcsuite/btcd/rpcclient" + "github.com/lightningnetwork/lnd/lnutils" ) const ( @@ -1004,7 +1005,7 @@ func (w *WebAPIEstimator) updateFeeEstimates() { return } - log.Debugf("Received response from source: %s", newLogClosure( + log.Debugf("Received response from source: %s", lnutils.NewLogClosure( func() string { resp, _ := json.Marshal(resp) return string(resp) diff --git a/lnwallet/chainfee/log.go b/lnwallet/chainfee/log.go index 914583033..d5d040578 100644 --- a/lnwallet/chainfee/log.go +++ b/lnwallet/chainfee/log.go @@ -27,19 +27,3 @@ func DisableLog() { func UseLogger(logger btclog.Logger) { log = logger } - -// logClosure is used to provide a closure over expensive logging operations so -// don't have to be performed when the logging level doesn't warrant it. -type logClosure func() string - -// String invokes the underlying function and returns the result. -func (c logClosure) String() string { - return c() -} - -// newLogClosure returns a new closure over a function that returns a string -// which itself provides a Stringer interface so that it can be used with the -// logging system. -func newLogClosure(c func() string) logClosure { - return logClosure(c) -} diff --git a/lnwallet/chancloser/chancloser.go b/lnwallet/chancloser/chancloser.go index 47635c3af..477d0912f 100644 --- a/lnwallet/chancloser/chancloser.go +++ b/lnwallet/chancloser/chancloser.go @@ -15,6 +15,7 @@ import ( "github.com/lightningnetwork/lnd/htlcswitch" "github.com/lightningnetwork/lnd/input" "github.com/lightningnetwork/lnd/labels" + "github.com/lightningnetwork/lnd/lnutils" "github.com/lightningnetwork/lnd/lnwallet" "github.com/lightningnetwork/lnd/lnwallet/chainfee" "github.com/lightningnetwork/lnd/lnwire" @@ -869,7 +870,7 @@ func (c *ChanCloser) ReceiveClosingSigned( //nolint:funlen // With the closing transaction crafted, we'll now broadcast it // to the network. chancloserLog.Infof("Broadcasting cooperative close tx: %v", - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(closeTx) }), ) diff --git a/lnwallet/chancloser/log.go b/lnwallet/chancloser/log.go index 967a1ec35..7189ed2a3 100644 --- a/lnwallet/chancloser/log.go +++ b/lnwallet/chancloser/log.go @@ -23,19 +23,3 @@ func DisableLog() { func UseLogger(logger btclog.Logger) { chancloserLog = logger } - -// logClosure is used to provide a closure over expensive logging operations -// so they aren't performed when the logging level doesn't warrant it. -type logClosure func() string - -// String invokes the underlying function and returns the result. -func (c logClosure) String() string { - return c() -} - -// newLogClosure returns a new closure over a function that returns a string -// which itself provides a Stringer interface so that it can be used with the -// logging system. -func newLogClosure(c func() string) logClosure { - return logClosure(c) -} diff --git a/lnwallet/channel.go b/lnwallet/channel.go index 0e0d762c1..b3ccf77d1 100644 --- a/lnwallet/channel.go +++ b/lnwallet/channel.go @@ -29,6 +29,7 @@ import ( "github.com/lightningnetwork/lnd/input" "github.com/lightningnetwork/lnd/keychain" "github.com/lightningnetwork/lnd/lntypes" + "github.com/lightningnetwork/lnd/lnutils" "github.com/lightningnetwork/lnd/lnwallet/chainfee" "github.com/lightningnetwork/lnd/lnwire" "github.com/lightningnetwork/lnd/shachain" @@ -1869,7 +1870,7 @@ func (lc *LightningChannel) restoreCommitState( lc.localCommitChain.addCommitment(localCommit) lc.log.Tracef("starting local commitment: %v", - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(lc.localCommitChain.tail()) }), ) @@ -1885,7 +1886,7 @@ func (lc *LightningChannel) restoreCommitState( lc.remoteCommitChain.addCommitment(remoteCommit) lc.log.Tracef("starting remote commitment: %v", - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(lc.remoteCommitChain.tail()) }), ) @@ -1920,7 +1921,7 @@ func (lc *LightningChannel) restoreCommitState( lc.remoteCommitChain.addCommitment(pendingRemoteCommit) lc.log.Debugf("pending remote commitment: %v", - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(lc.remoteCommitChain.tip()) }), ) @@ -3245,9 +3246,9 @@ func (lc *LightningChannel) fetchParent(entry *PaymentDescriptor, return nil, fmt.Errorf("unable to find parent entry "+ "%d in %v update log: %v\nUpdatelog: %v", entry.ParentIndex, logName, - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(entry) - }), newLogClosure(func() string { + }), lnutils.NewLogClosure(func() string { return spew.Sdump(updateLog) }), ) @@ -4249,7 +4250,7 @@ func (lc *LightningChannel) SignNextCommitment() (*NewCommitState, error) { "their_balance=%v, commit_tx: %v", newCommitView.ourBalance, newCommitView.theirBalance, - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(newCommitView.txn) }), ) @@ -5209,7 +5210,7 @@ func (lc *LightningChannel) ReceiveNewCommitment(commitSigs *CommitSigs) error { lc.log.Tracef("local chain: our_balance=%v, "+ "their_balance=%v, commit_tx: %v", localCommitmentView.ourBalance, localCommitmentView.theirBalance, - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(localCommitmentView.txn) }), ) diff --git a/lnwallet/log.go b/lnwallet/log.go index 341edeca7..7c8ce5198 100644 --- a/lnwallet/log.go +++ b/lnwallet/log.go @@ -36,19 +36,3 @@ func UseLogger(logger btclog.Logger) { chain.UseLogger(logger) chainfee.UseLogger(logger) } - -// logClosure is used to provide a closure over expensive logging operations -// so don't have to be performed when the logging level doesn't warrant it. -type logClosure func() string - -// String invokes the underlying function and returns the result. -func (c logClosure) String() string { - return c() -} - -// newLogClosure returns a new closure over a function that returns a string -// which itself provides a Stringer interface so that it can be used with the -// logging system. -func newLogClosure(c func() string) logClosure { - return logClosure(c) -} diff --git a/log.go b/log.go index 1b170f5ea..9067a4a36 100644 --- a/log.go +++ b/log.go @@ -208,19 +208,3 @@ func SetSubLogger(root *build.RotatingLogWriter, subsystem string, useLogger(logger) } } - -// logClosure is used to provide a closure over expensive logging operations so -// don't have to be performed when the logging level doesn't warrant it. -type logClosure func() string - -// String invokes the underlying function and returns the result. -func (c logClosure) String() string { - return c() -} - -// newLogClosure returns a new closure over a function that returns a string -// which itself provides a Stringer interface so that it can be used with the -// logging system. -func newLogClosure(c func() string) logClosure { - return logClosure(c) -} diff --git a/peer/brontide.go b/peer/brontide.go index 769fe539f..9393acefb 100644 --- a/peer/brontide.go +++ b/peer/brontide.go @@ -2156,7 +2156,7 @@ func (p *Brontide) logWireMessage(msg lnwire.Message, read bool) { summaryPrefix = "Sending" } - p.log.Debugf("%v", newLogClosure(func() string { + p.log.Debugf("%v", lnutils.NewLogClosure(func() string { // Debug summary of message. summary := messageSummary(msg) if len(summary) > 0 { @@ -2184,7 +2184,7 @@ func (p *Brontide) logWireMessage(msg lnwire.Message, read bool) { prefix = "writeMessage to peer" } - p.log.Tracef(prefix+": %v", newLogClosure(func() string { + p.log.Tracef(prefix+": %v", lnutils.NewLogClosure(func() string { return spew.Sdump(msg) })) } diff --git a/peer/log.go b/peer/log.go index a1f9bda3e..f0d1a6672 100644 --- a/peer/log.go +++ b/peer/log.go @@ -22,19 +22,3 @@ func DisableLog() { func UseLogger(logger btclog.Logger) { peerLog = logger } - -// logClosure is used to provide a closure over expensive logging operations -// so they aren't performed when the logging level doesn't warrant it. -type logClosure func() string - -// String invokes the underlying function and returns the result. -func (c logClosure) String() string { - return c() -} - -// newLogClosure returns a new closure over a function that returns a string -// which itself provides a Stringer interface so that it can be used with the -// logging system. -func newLogClosure(c func() string) logClosure { - return logClosure(c) -} diff --git a/routing/log.go b/routing/log.go index e5c2e7a07..741ec084e 100644 --- a/routing/log.go +++ b/routing/log.go @@ -31,19 +31,3 @@ func UseLogger(logger btclog.Logger) { log = logger chainview.UseLogger(logger) } - -// logClosure is used to provide a closure over expensive logging operations so -// don't have to be performed when the logging level doesn't warrant it. -type logClosure func() string - -// String invokes the underlying function and returns the result. -func (c logClosure) String() string { - return c() -} - -// newLogClosure returns a new closure over a function that returns a string -// which itself provides a Stringer interface so that it can be used with the -// logging system. -func newLogClosure(c func() string) logClosure { - return logClosure(c) -} diff --git a/routing/pathfind.go b/routing/pathfind.go index 083af04db..a80826971 100644 --- a/routing/pathfind.go +++ b/routing/pathfind.go @@ -13,6 +13,7 @@ import ( "github.com/lightningnetwork/lnd/channeldb" "github.com/lightningnetwork/lnd/channeldb/models" "github.com/lightningnetwork/lnd/feature" + "github.com/lightningnetwork/lnd/lnutils" "github.com/lightningnetwork/lnd/lnwire" "github.com/lightningnetwork/lnd/record" "github.com/lightningnetwork/lnd/routing/route" @@ -728,7 +729,7 @@ func findPath(g *graphParams, r *RestrictParams, cfg *PathFindingConfig, edge.capacity, ) - log.Trace(newLogClosure(func() string { + log.Trace(lnutils.NewLogClosure(func() string { return fmt.Sprintf("path finding probability: fromnode=%v,"+ " tonode=%v, amt=%v, cap=%v, probability=%v", fromVertex, toNodeDist.node, amountToSend, diff --git a/routing/payment_session.go b/routing/payment_session.go index a464bd93e..7fe9a45ba 100644 --- a/routing/payment_session.go +++ b/routing/payment_session.go @@ -10,6 +10,7 @@ import ( "github.com/lightningnetwork/lnd/channeldb" "github.com/lightningnetwork/lnd/channeldb/models" "github.com/lightningnetwork/lnd/graph" + "github.com/lightningnetwork/lnd/lnutils" "github.com/lightningnetwork/lnd/lnwire" "github.com/lightningnetwork/lnd/routing/route" ) @@ -432,7 +433,7 @@ func (p *paymentSession) UpdateAdditionalEdge(msg *lnwire.ChannelUpdate, policy.FeeProportionalMillionths = lnwire.MilliSatoshi(msg.FeeRate) log.Debugf("New private channel update applied: %v", - newLogClosure(func() string { return spew.Sdump(msg) })) + lnutils.NewLogClosure(func() string { return spew.Sdump(msg) })) return true } diff --git a/routing/router.go b/routing/router.go index 293f2c9fc..81abb5007 100644 --- a/routing/router.go +++ b/routing/router.go @@ -21,6 +21,7 @@ import ( "github.com/lightningnetwork/lnd/fn" "github.com/lightningnetwork/lnd/htlcswitch" "github.com/lightningnetwork/lnd/lntypes" + "github.com/lightningnetwork/lnd/lnutils" "github.com/lightningnetwork/lnd/lnwallet" "github.com/lightningnetwork/lnd/lnwire" "github.com/lightningnetwork/lnd/record" @@ -669,7 +670,7 @@ func (r *ChannelRouter) FindRoute(req *RouteRequest) (*route.Route, float64, } go log.Tracef("Obtained path to send %v to %x: %v", - req.Amount, req.Target, newLogClosure(func() string { + req.Amount, req.Target, lnutils.NewLogClosure(func() string { return spew.Sdump(route) }), ) @@ -704,7 +705,7 @@ func generateSphinxPacket(rt *route.Route, paymentHash []byte, } log.Tracef("Constructed per-hop payloads for payment_hash=%x: %v", - paymentHash[:], newLogClosure(func() string { + paymentHash, lnutils.NewLogClosure(func() string { path := make( []sphinx.OnionHop, sphinxPath.TrueRouteLength(), ) @@ -734,7 +735,7 @@ func generateSphinxPacket(rt *route.Route, paymentHash []byte, } log.Tracef("Generated sphinx packet: %v", - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { // We make a copy of the ephemeral key and unset the // internal curve here in order to keep the logs from // getting noisy. @@ -945,8 +946,8 @@ func (r *ChannelRouter) SendPaymentAsync(ctx context.Context, // spewPayment returns a log closures that provides a spewed string // representation of the passed payment. -func spewPayment(payment *LightningPayment) logClosure { - return newLogClosure(func() string { +func spewPayment(payment *LightningPayment) lnutils.LogClosure { + return lnutils.NewLogClosure(func() string { // Make a copy of the payment with a nilled Curve // before spewing. var routeHints [][]zpay32.HopHint @@ -1091,7 +1092,7 @@ func (r *ChannelRouter) sendToRoute(htlcHash lntypes.Hash, rt *route.Route, } log.Tracef("Dispatching SendToRoute for HTLC hash %v: %v", - htlcHash, newLogClosure(func() string { + htlcHash, lnutils.NewLogClosure(func() string { return spew.Sdump(rt) }), ) diff --git a/rpcserver.go b/rpcserver.go index 465035ea5..26c6e4c71 100644 --- a/rpcserver.go +++ b/rpcserver.go @@ -63,6 +63,7 @@ import ( "github.com/lightningnetwork/lnd/lnrpc/routerrpc" "github.com/lightningnetwork/lnd/lnrpc/walletrpc" "github.com/lightningnetwork/lnd/lntypes" + "github.com/lightningnetwork/lnd/lnutils" "github.com/lightningnetwork/lnd/lnwallet" "github.com/lightningnetwork/lnd/lnwallet/btcwallet" "github.com/lightningnetwork/lnd/lnwallet/chainfee" @@ -5845,7 +5846,7 @@ func (r *rpcServer) LookupInvoice(ctx context.Context, } rpcsLog.Tracef("[lookupinvoice] located invoice %v", - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(invoice) })) diff --git a/sweep/fee_bumper.go b/sweep/fee_bumper.go index e79280166..761f16ecd 100644 --- a/sweep/fee_bumper.go +++ b/sweep/fee_bumper.go @@ -313,7 +313,7 @@ func (t *TxPublisher) isNeutrinoBackend() bool { // // NOTE: part of the Bumper interface. func (t *TxPublisher) Broadcast(req *BumpRequest) (<-chan *BumpResult, error) { - log.Tracef("Received broadcast request: %s", newLogClosure( + log.Tracef("Received broadcast request: %s", lnutils.NewLogClosure( func() string { return spew.Sdump(req) })()) diff --git a/sweep/log.go b/sweep/log.go index 9bf48116d..172502375 100644 --- a/sweep/log.go +++ b/sweep/log.go @@ -27,19 +27,3 @@ func DisableLog() { func UseLogger(logger btclog.Logger) { log = logger } - -// logClosure is used to provide a closure over expensive logging operations so -// don't have to be performed when the logging level doesn't warrant it. -type logClosure func() string - -// String invokes the underlying function and returns the result. -func (c logClosure) String() string { - return c() -} - -// newLogClosure returns a new closure over a function that returns a string -// which itself provides a Stringer interface so that it can be used with the -// logging system. -func newLogClosure(c func() string) logClosure { - return logClosure(c) -} diff --git a/sweep/sweeper.go b/sweep/sweeper.go index 39a03228d..d414adc88 100644 --- a/sweep/sweeper.go +++ b/sweep/sweeper.go @@ -13,6 +13,7 @@ import ( "github.com/lightningnetwork/lnd/chainntnfs" "github.com/lightningnetwork/lnd/fn" "github.com/lightningnetwork/lnd/input" + "github.com/lightningnetwork/lnd/lnutils" "github.com/lightningnetwork/lnd/lnwallet" "github.com/lightningnetwork/lnd/lnwallet/chainfee" ) @@ -1376,7 +1377,7 @@ func (s *UtxoSweeper) handleInputSpent(spend *chainntnfs.SpendDetail) { log.Debugf("Detected third party spend related to in flight "+ "inputs (is_ours=%v): %v", isOurTx, - newLogClosure(func() string { + lnutils.NewLogClosure(func() string { return spew.Sdump(spend.SpendingTx) }), ) diff --git a/watchtower/wtdb/log.go b/watchtower/wtdb/log.go index ed453383f..fa0a64f6a 100644 --- a/watchtower/wtdb/log.go +++ b/watchtower/wtdb/log.go @@ -43,19 +43,3 @@ func UseLogger(logger btclog.Logger) { migration7.UseLogger(logger) migration8.UseLogger(logger) } - -// logClosure is used to provide a closure over expensive logging operations so -// don't have to be performed when the logging level doesn't warrant it. -type logClosure func() string // nolint:unused - -// String invokes the underlying function and returns the result. -func (c logClosure) String() string { - return c() -} - -// newLogClosure returns a new closure over a function that returns a string -// which itself provides a Stringer interface so that it can be used with the -// logging system. -func newLogClosure(c func() string) logClosure { // nolint:unused - return logClosure(c) -}