You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
3.4 KiB
112 lines
3.4 KiB
package build |
|
|
|
import "github.com/btcsuite/btclog" |
|
|
|
// PrefixLog is a pass-through logger that adds a prefix to every logged line. |
|
type PrefixLog struct { |
|
log btclog.Logger |
|
prefix string |
|
} |
|
|
|
// NewPrefixLog instantiates a new prefixed logger. |
|
func NewPrefixLog(prefix string, log btclog.Logger) *PrefixLog { |
|
return &PrefixLog{ |
|
prefix: prefix, |
|
log: log, |
|
} |
|
} |
|
|
|
// addFormatPrefix prepends the prefix to a format string. |
|
func (p *PrefixLog) addFormatPrefix(s string) string { |
|
return p.prefix + " " + s |
|
} |
|
|
|
// addArgsPrefix prepends the prefix to a list of arguments. |
|
func (p *PrefixLog) addArgsPrefix(args []interface{}) []interface{} { |
|
return append([]interface{}{p.prefix}, args...) |
|
} |
|
|
|
// Tracef formats message according to format specifier and writes to to log |
|
// with LevelTrace. |
|
func (p *PrefixLog) Tracef(format string, params ...interface{}) { |
|
p.log.Tracef(p.addFormatPrefix(format), params...) |
|
} |
|
|
|
// Debugf formats message according to format specifier and writes to log with |
|
// LevelDebug. |
|
func (p *PrefixLog) Debugf(format string, params ...interface{}) { |
|
p.log.Debugf(p.addFormatPrefix(format), params...) |
|
} |
|
|
|
// Infof formats message according to format specifier and writes to log with |
|
// LevelInfo. |
|
func (p *PrefixLog) Infof(format string, params ...interface{}) { |
|
p.log.Infof(p.addFormatPrefix(format), params...) |
|
} |
|
|
|
// Warnf formats message according to format specifier and writes to to log with |
|
// LevelWarn. |
|
func (p *PrefixLog) Warnf(format string, params ...interface{}) { |
|
p.log.Warnf(p.addFormatPrefix(format), params...) |
|
} |
|
|
|
// Errorf formats message according to format specifier and writes to to log |
|
// with LevelError. |
|
func (p *PrefixLog) Errorf(format string, params ...interface{}) { |
|
p.log.Errorf(p.addFormatPrefix(format), params...) |
|
} |
|
|
|
// Criticalf formats message according to format specifier and writes to log |
|
// with LevelCritical. |
|
func (p *PrefixLog) Criticalf(format string, params ...interface{}) { |
|
p.log.Criticalf(p.addFormatPrefix(format), params...) |
|
} |
|
|
|
// Trace formats message using the default formats for its operands and writes |
|
// to log with LevelTrace. |
|
func (p *PrefixLog) Trace(v ...interface{}) { |
|
p.log.Trace(p.addArgsPrefix(v)...) |
|
} |
|
|
|
// Debug formats message using the default formats for its operands and writes |
|
// to log with LevelDebug. |
|
func (p *PrefixLog) Debug(v ...interface{}) { |
|
p.log.Debug(p.addArgsPrefix(v)...) |
|
} |
|
|
|
// Info formats message using the default formats for its operands and writes to |
|
// log with LevelInfo. |
|
func (p *PrefixLog) Info(v ...interface{}) { |
|
p.log.Info(p.addArgsPrefix(v)...) |
|
} |
|
|
|
// Warn formats message using the default formats for its operands and writes to |
|
// log with LevelWarn. |
|
func (p *PrefixLog) Warn(v ...interface{}) { |
|
p.log.Warn(p.addArgsPrefix(v)...) |
|
} |
|
|
|
// Error formats message using the default formats for its operands and writes |
|
// to log with LevelError. |
|
func (p *PrefixLog) Error(v ...interface{}) { |
|
p.log.Error(p.addArgsPrefix(v)...) |
|
} |
|
|
|
// Critical formats message using the default formats for its operands and |
|
// writes to log with LevelCritical. |
|
func (p *PrefixLog) Critical(v ...interface{}) { |
|
p.log.Critical(p.addArgsPrefix(v)...) |
|
} |
|
|
|
// Level returns the current logging level. |
|
func (p *PrefixLog) Level() btclog.Level { |
|
return p.log.Level() |
|
} |
|
|
|
// SetLevel changes the logging level to the passed level. |
|
func (p *PrefixLog) SetLevel(level btclog.Level) { |
|
p.log.SetLevel(level) |
|
} |
|
|
|
// Assert that PrefixLog fulfills the btclog.Logger interface. |
|
var _ btclog.Logger = &PrefixLog{}
|
|
|