loopdb: enable logging
Previous code in log.go assumed there would by sub system level
enable/disable for loop. This is not yet in place, so converting to same
style as used in the lndclient package.
package loopdb
import (
+ "os"
+
"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() {
- log = 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
+var (
+ backendLog = btclog.NewBackend(logWriter{})
+ log = backendLog.Logger("STORE")
+)
-// String invokes the underlying function and returns the result.
-func (c logClosure) String() string {
- return c()
-}
+// logWriter implements an io.Writer that outputs to both standard output and
+// the write-end pipe of an initialized log rotator.
+type logWriter struct{}
-// 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)
+func (logWriter) Write(p []byte) (n int, err error) {
+ os.Stdout.Write(p)
+ return len(p), nil
}
