func Donef(format string, v ...interface{}) {
	deprecatedLogger.Donef(format, v...)
}
Donef ...
Deprecated: use Logger instead.
package log
import (
	"fmt"
	"io"
	"os"
	"time"
)
type Logger interface {
	Infof(format string, v ...interface{})
	Warnf(format string, v ...interface{})
	Printf(format string, v ...interface{})
	Donef(format string, v ...interface{})
	Debugf(format string, v ...interface{})
	Errorf(format string, v ...interface{})
	TInfof(format string, v ...interface{})
	TWarnf(format string, v ...interface{})
	TPrintf(format string, v ...interface{})
	TDonef(format string, v ...interface{})
	TDebugf(format string, v ...interface{})
	TErrorf(format string, v ...interface{})
	Println()
	EnableDebugLog(enable bool)
}
const defaultTimeStampLayout = "15:04:05"
type defaultLogger struct {
	enableDebugLog  bool
	timestampLayout string
	stdout          io.Writer
}
func NewLogger() Logger {
	return &defaultLogger{enableDebugLog: false, timestampLayout: defaultTimeStampLayout, stdout: os.Stdout}
}
func (l *defaultLogger) EnableDebugLog(enable bool) {
	l.enableDebugLog = enable
}
func (l *defaultLogger) Infof(format string, v ...interface{}) {
	l.printf(infoSeverity, false, format, v...)
}
func (l *defaultLogger) Warnf(format string, v ...interface{}) {
	l.printf(warnSeverity, false, format, v...)
}
func (l *defaultLogger) Printf(format string, v ...interface{}) {
	l.printf(normalSeverity, false, format, v...)
}
func (l *defaultLogger) Donef(format string, v ...interface{}) {
	l.printf(doneSeverity, false, format, v...)
}
func (l *defaultLogger) Debugf(format string, v ...interface{}) {
	if l.enableDebugLog {
		l.printf(debugSeverity, false, format, v...)
	}
}
func (l *defaultLogger) Errorf(format string, v ...interface{}) {
	l.printf(errorSeverity, false, format, v...)
}
func (l *defaultLogger) TInfof(format string, v ...interface{}) {
	l.printf(infoSeverity, true, format, v...)
}
func (l *defaultLogger) TWarnf(format string, v ...interface{}) {
	l.printf(warnSeverity, true, format, v...)
}
func (l *defaultLogger) TPrintf(format string, v ...interface{}) {
	l.printf(normalSeverity, true, format, v...)
}
func (l *defaultLogger) TDonef(format string, v ...interface{}) {
	l.printf(doneSeverity, true, format, v...)
}
func (l *defaultLogger) TDebugf(format string, v ...interface{}) {
	if l.enableDebugLog {
		l.printf(debugSeverity, true, format, v...)
	}
}
func (l *defaultLogger) TErrorf(format string, v ...interface{}) {
	l.printf(errorSeverity, true, format, v...)
}
func (l *defaultLogger) Println() {
	fmt.Println()
}
func (l *defaultLogger) timestampField() string {
	currentTime := time.Now()
	return fmt.Sprintf("[%s]", currentTime.Format(l.timestampLayout))
}
func (l *defaultLogger) prefixCurrentTime(message string) string {
	return fmt.Sprintf("%s %s", l.timestampField(), message)
}
func (l *defaultLogger) createLogMsg(severity Severity, withTime bool, format string, v ...interface{}) string {
	colorFunc := severityColorFuncMap[severity]
	message := colorFunc(format, v...)
	if withTime {
		message = l.prefixCurrentTime(message)
	}
	return message
}
func (l *defaultLogger) printf(severity Severity, withTime bool, format string, v ...interface{}) {
	message := l.createLogMsg(severity, withTime, format, v...)
	if _, err := fmt.Fprintln(l.stdout, message); err != nil {
		fmt.Printf("failed to print message: %s, error: %s\n", message, err)
	}
}
func RInfof(stepID string, tag string, data map[string]interface{}, format string, v ...interface{}) {
	rprintf("info", stepID, tag, data, format, v...)
}
func RWarnf(stepID string, tag string, data map[string]interface{}, format string, v ...interface{}) {
	rprintf("warn", stepID, tag, data, format, v...)
}
func RErrorf(stepID string, tag string, data map[string]interface{}, format string, v ...interface{}) {
	rprintf("error", stepID, tag, data, format, v...)
}
var deprecatedLogger = defaultLogger{stdout: os.Stdout, enableDebugLog: false, timestampLayout: defaultTimeStampLayout}
func SetEnableDebugLog(enable bool) {
	deprecatedLogger.enableDebugLog = enable
}
func SetTimestampLayout(layout string) {
	deprecatedLogger.timestampLayout = layout
}
func SetOutWriter(writer io.Writer) {
	deprecatedLogger.stdout = writer
}