matterbridge/vendor/github.com/nlopes/slack/logger.go

61 lines
1.3 KiB
Go
Raw Normal View History

2018-08-09 15:38:19 -07:00
package slack
import (
"fmt"
)
2018-12-01 10:55:35 -08:00
// logger is a logger interface compatible with both stdlib and some
// 3rd party loggers.
type logger interface {
2018-08-09 15:38:19 -07:00
Output(int, string) error
}
2018-12-01 10:55:35 -08:00
// ilogger represents the internal logging api we use.
type ilogger interface {
logger
2018-08-09 15:38:19 -07:00
Print(...interface{})
Printf(string, ...interface{})
Println(...interface{})
}
2018-12-01 10:55:35 -08:00
type debug interface {
Debug() bool
// Debugf print a formatted debug line.
Debugf(format string, v ...interface{})
// Debugln print a debug line.
Debugln(v ...interface{})
}
// internalLog implements the additional methods used by our internal logging.
type internalLog struct {
logger
2018-08-09 15:38:19 -07:00
}
// Println replicates the behaviour of the standard logger.
2018-12-01 10:55:35 -08:00
func (t internalLog) Println(v ...interface{}) {
2018-08-09 15:38:19 -07:00
t.Output(2, fmt.Sprintln(v...))
}
// Printf replicates the behaviour of the standard logger.
2018-12-01 10:55:35 -08:00
func (t internalLog) Printf(format string, v ...interface{}) {
2018-08-09 15:38:19 -07:00
t.Output(2, fmt.Sprintf(format, v...))
}
// Print replicates the behaviour of the standard logger.
2018-12-01 10:55:35 -08:00
func (t internalLog) Print(v ...interface{}) {
2018-08-09 15:38:19 -07:00
t.Output(2, fmt.Sprint(v...))
}
2018-12-01 10:55:35 -08:00
type discard struct{}
func (t discard) Debug() bool {
return false
}
// Debugf print a formatted debug line.
func (t discard) Debugf(format string, v ...interface{}) {}
// Debugln print a debug line.
func (t discard) Debugln(v ...interface{}) {}