From 0b80d4feaafaef76e7973df2fd1a4bb4759fb9ec Mon Sep 17 00:00:00 2001 From: yyforyongyu Date: Thu, 23 Sep 2021 18:34:51 +0800 Subject: [PATCH] tor: add logging to tor controller --- log.go | 2 ++ tor/controller.go | 9 +++++++++ tor/log.go | 26 ++++++++++++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 tor/log.go diff --git a/log.go b/log.go index 61d3b3ca3..68b592bb4 100644 --- a/log.go +++ b/log.go @@ -40,6 +40,7 @@ import ( "github.com/lightningnetwork/lnd/rpcperms" "github.com/lightningnetwork/lnd/signal" "github.com/lightningnetwork/lnd/sweep" + "github.com/lightningnetwork/lnd/tor" "github.com/lightningnetwork/lnd/watchtower" "github.com/lightningnetwork/lnd/watchtower/wtclient" ) @@ -161,6 +162,7 @@ func SetupLoggers(root *build.RotatingLogWriter, interceptor signal.Interceptor) AddSubLogger(root, funding.Subsystem, interceptor, funding.UseLogger) AddSubLogger(root, cluster.Subsystem, interceptor, cluster.UseLogger) AddSubLogger(root, rpcperms.Subsystem, interceptor, rpcperms.UseLogger) + AddSubLogger(root, tor.Subsystem, interceptor, tor.UseLogger) } // AddSubLogger is a helper method to conveniently create and register the diff --git a/tor/controller.go b/tor/controller.go index 5e24ae20d..9ec3f15a8 100644 --- a/tor/controller.go +++ b/tor/controller.go @@ -122,6 +122,8 @@ func (c *Controller) Start() error { return nil } + log.Info("Starting tor controller") + conn, err := textproto.Dial("tcp", c.controlAddr) if err != nil { return fmt.Errorf("unable to connect to Tor server: %v", err) @@ -138,6 +140,8 @@ func (c *Controller) Stop() error { return nil } + log.Info("Stopping tor controller") + return c.conn.Close() } @@ -151,7 +155,12 @@ func (c *Controller) sendCommand(command string) (int, string, error) { // We'll use ReadResponse as it has built-in support for multi-line // text protocol responses. code, reply, err := c.conn.Reader.ReadResponse(success) + log.Tracef("sendCommand: %v got , ", + command, code, reply) + if err != nil { + log.Debugf("sendCommand:%s got err:%v, reply:%v", + command, err, reply) return code, reply, err } diff --git a/tor/log.go b/tor/log.go new file mode 100644 index 000000000..9fe5b8aab --- /dev/null +++ b/tor/log.go @@ -0,0 +1,26 @@ +package tor + +import ( + "github.com/btcsuite/btclog" +) + +// Subsystem defines the logging code for this subsystem. +const Subsystem = "TORC" // TORC as in Tor Controller. + +// 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 + +// DisableLog disables all library log output. Logging output is disabled +// 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 +}