package rabbitmq import ( "fmt" "log" "os" "github.com/wagslane/go-rabbitmq/internal/logger" ) // Logger is describes a logging structure. It can be set using // WithPublisherOptionsLogger() or WithConsumerOptionsLogger(). type Logger logger.Logger const loggingPrefix = "gorabbit" type stdDebugLogger struct{} // Fatalf - func (l stdDebugLogger) Fatalf(format string, v ...interface{}) { log.Fatalf(fmt.Sprintf("%s FATAL: %s", loggingPrefix, format), v...) } // Errorf - func (l stdDebugLogger) Errorf(format string, v ...interface{}) { log.Printf(fmt.Sprintf("%s ERROR: %s", loggingPrefix, format), v...) } // Warnf - func (l stdDebugLogger) Warnf(format string, v ...interface{}) { log.Printf(fmt.Sprintf("%s WARN: %s", loggingPrefix, format), v...) } // Infof - func (l stdDebugLogger) Infof(format string, v ...interface{}) { log.Printf(fmt.Sprintf("%s INFO: %s", loggingPrefix, format), v...) } // Debugf - func (l stdDebugLogger) Debugf(format string, v ...interface{}) { log.Printf(fmt.Sprintf("%s DEBUG: %s", loggingPrefix, format), v...) } // simpleLogF is used to support logging in the test functions. // This could be exposed publicly for integration in more simple logging interfaces. type simpleLogF func(string, ...interface{}) func (l simpleLogF) Fatalf(format string, v ...interface{}) { l(fmt.Sprintf("%s FATAL: %s", loggingPrefix, format), v...) os.Exit(1) } func (l simpleLogF) Errorf(format string, v ...interface{}) { l(fmt.Sprintf("%s ERROR: %s", loggingPrefix, format), v...) } func (l simpleLogF) Warnf(format string, v ...interface{}) { l(fmt.Sprintf("%s WARN: %s", loggingPrefix, format), v...) } func (l simpleLogF) Infof(format string, v ...interface{}) { l(fmt.Sprintf("%s INFO: %s", loggingPrefix, format), v...) } func (l simpleLogF) Debugf(format string, v ...interface{}) { l(fmt.Sprintf("%s DEBUG: %s", loggingPrefix, format), v...) }