summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/slack-go/slack/logger.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/slack-go/slack/logger.go')
-rw-r--r--vendor/github.com/slack-go/slack/logger.go60
1 files changed, 60 insertions, 0 deletions
diff --git a/vendor/github.com/slack-go/slack/logger.go b/vendor/github.com/slack-go/slack/logger.go
new file mode 100644
index 00000000..6a3533a9
--- /dev/null
+++ b/vendor/github.com/slack-go/slack/logger.go
@@ -0,0 +1,60 @@
+package slack
+
+import (
+ "fmt"
+)
+
+// logger is a logger interface compatible with both stdlib and some
+// 3rd party loggers.
+type logger interface {
+ Output(int, string) error
+}
+
+// ilogger represents the internal logging api we use.
+type ilogger interface {
+ logger
+ Print(...interface{})
+ Printf(string, ...interface{})
+ Println(...interface{})
+}
+
+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
+}
+
+// Println replicates the behaviour of the standard logger.
+func (t internalLog) Println(v ...interface{}) {
+ t.Output(2, fmt.Sprintln(v...))
+}
+
+// Printf replicates the behaviour of the standard logger.
+func (t internalLog) Printf(format string, v ...interface{}) {
+ t.Output(2, fmt.Sprintf(format, v...))
+}
+
+// Print replicates the behaviour of the standard logger.
+func (t internalLog) Print(v ...interface{}) {
+ t.Output(2, fmt.Sprint(v...))
+}
+
+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{}) {}