github.com/lbryio/lbcd@v0.22.119/rpcclient/log.go (about) 1 // Copyright (c) 2014-2017 The btcsuite developers 2 // Use of this source code is governed by an ISC 3 // license that can be found in the LICENSE file. 4 5 package rpcclient 6 7 import ( 8 "github.com/btcsuite/btclog" 9 ) 10 11 // log is a logger that is initialized with no output filters. This 12 // means the package will not perform any logging by default until the caller 13 // requests it. 14 var log btclog.Logger 15 16 // The default amount of logging is none. 17 func init() { 18 DisableLog() 19 } 20 21 // DisableLog disables all library log output. Logging output is disabled 22 // by default until UseLogger is called. 23 func DisableLog() { 24 log = btclog.Disabled 25 } 26 27 // UseLogger uses a specified Logger to output package logging info. 28 func UseLogger(logger btclog.Logger) { 29 log = logger 30 } 31 32 // LogClosure is a closure that can be printed with %v to be used to 33 // generate expensive-to-create data for a detailed log level and avoid doing 34 // the work if the data isn't printed. 35 type logClosure func() string 36 37 // String invokes the log closure and returns the results string. 38 func (c logClosure) String() string { 39 return c() 40 } 41 42 // newLogClosure returns a new closure over the passed function which allows 43 // it to be used as a parameter in a logging function that is only invoked when 44 // the logging level is such that the message will actually be logged. 45 func newLogClosure(c func() string) logClosure { 46 return logClosure(c) 47 }