1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
// Package print allows users to create a Logger interface from any
// object that supports Print and Printf.
package print
// Printer is an interface for Print and Printf.
type Printer interface {
Print(v ...interface{})
Printf(format string, v ...interface{})
}
type logger struct {
printer Printer
}
func (logger *logger) Log(v ...interface{}) {
logger.printer.Print(v...)
}
func (logger *logger) Logf(format string, v ...interface{}) {
logger.printer.Printf(format, v...)
}
// New creates a new logger wrapping printer.
func New(printer Printer) *logger {
return &logger{
printer: printer,
}
}
|