func (pp *PrettyPrinter) Printf(format string, a ...interface{}) (n int, err error) {
	return fmt.Fprintf(pp.out, format, pp.formatAll(a)...)
}
Printf prints a given format.
package pp
import (
	"errors"
	"fmt"
	"io"
	"os"
	"runtime"
	"sync"
	"github.com/mattn/go-colorable"
)
var (
	defaultOut           = colorable.NewColorableStdout()
	defaultWithLineInfo  = false
	defaultPrettyPrinter = newPrettyPrinter(3)  
)
type PrettyPrinter struct {
	out           io.Writer
	currentScheme ColorScheme
	WithLineInfo    bool
	outLock         sync.Mutex
	maxDepth        int
	coloringEnabled bool
	callerLevel     int
}
func New() *PrettyPrinter {
	return newPrettyPrinter(2)  
}
func newPrettyPrinter(callerLevel int) *PrettyPrinter {
	return &PrettyPrinter{
		out:             defaultOut,
		currentScheme:   defaultScheme,
		WithLineInfo:    defaultWithLineInfo,
		maxDepth:        -1,
		coloringEnabled: true,
		callerLevel:     callerLevel,
	}
}
func (pp *PrettyPrinter) Print(a ...interface{}) (n int, err error) {
	return fmt.Fprint(pp.out, pp.formatAll(a)...)
}