func (t *TestLogger) Logf(format string, args ...interface{}) {
	t.Log(fmt.Sprintf(format, args...))
}
Logf logs the provided arguments with the logger's prefix. See testing.Logf for more details.
package utils
import (
	"bytes"
	"fmt"
	"testing"
	"time"
)
type Logger interface {
	Log(args ...interface{})
	Logf(format string, args ...interface{})
	WithPrefix(string) Logger
	Write(p []byte) (n int, err error)
	Flush()
}
type TestLogger struct {
	prefix string
	test   *testing.T
	buffer []byte
}
func NewTestLogger(test *testing.T, prefix string) *TestLogger {
	return &TestLogger{
		prefix: prefix,
		test:   test,
		buffer: []byte{},
	}
}
func (t *TestLogger) Log(args ...interface{}) {
	args = append([]interface{}{
		fmt.Sprintf("%s | %s |", time.Now().Format("15:04:05"), t.prefix),
	}, args...)
	t.test.Log(args...)
}