diff --git a/lnrpc/autopilotrpc/log.go b/lnrpc/autopilotrpc/log.go new file mode 100644 index 00000000..caf38119 --- /dev/null +++ b/lnrpc/autopilotrpc/log.go @@ -0,0 +1,45 @@ +package autopilotrpc + +import ( + "github.com/btcsuite/btclog" + "github.com/lightningnetwork/lnd/build" +) + +// 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() { + UseLogger(build.NewSubLogger("ARPC", nil)) +} + +// DisableLog disables all library log output. Logging output is disabled by +// by default until UseLogger is 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 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 aa2e32d5..21f647c0 100644 --- a/log.go +++ b/log.go @@ -19,6 +19,7 @@ import ( "github.com/lightningnetwork/lnd/contractcourt" "github.com/lightningnetwork/lnd/discovery" "github.com/lightningnetwork/lnd/htlcswitch" + "github.com/lightningnetwork/lnd/lnrpc/autopilotrpc" "github.com/lightningnetwork/lnd/lnrpc/signrpc" "github.com/lightningnetwork/lnd/lnrpc/walletrpc" "github.com/lightningnetwork/lnd/lnwallet" @@ -69,6 +70,7 @@ var ( swprLog = build.NewSubLogger("SWPR", backendLog.Logger) sgnrLog = build.NewSubLogger("SGNR", backendLog.Logger) wlktLog = build.NewSubLogger("WLKT", backendLog.Logger) + arpcLog = build.NewSubLogger("ARPC", backendLog.Logger) ) // Initialize package-global logger variables. @@ -88,6 +90,7 @@ func init() { sweep.UseLogger(swprLog) signrpc.UseLogger(sgnrLog) walletrpc.UseLogger(wlktLog) + autopilotrpc.UseLogger(arpcLog) } // subsystemLoggers maps each subsystem identifier to its associated logger. @@ -113,6 +116,7 @@ var subsystemLoggers = map[string]btclog.Logger{ "SWPR": swprLog, "SGNR": sgnrLog, "WLKT": wlktLog, + "ARPC": arpcLog, } // initLogRotator initializes the logging rotator to write logs to logFile and