func Debugf(log Logger, format string, arguments ...interface{}) {
	if log == nil {
		return
	}
	log.Debugf(format, arguments...)
}
Debugf logs an debug message if the logger is set.
package chart
import (
	"fmt"
	"io"
	"os"
	"time"
)
var (
	_ Logger = (*StdoutLogger)(nil)
)
func NewLogger(options ...LoggerOption) Logger {
	stl := &StdoutLogger{
		TimeFormat: time.RFC3339Nano,
		Stdout:     os.Stdout,
		Stderr:     os.Stderr,
	}
	for _, option := range options {
		option(stl)
	}
	return stl
}
type Logger interface {
	Info(...interface{})
	Infof(string, ...interface{})
	Debug(...interface{})
	Debugf(string, ...interface{})
	Err(error)
	FatalErr(error)
	Error(...interface{})
	Errorf(string, ...interface{})
}
func Info(log Logger, arguments ...interface{}) {
	if log == nil {
		return
	}
	log.Info(arguments...)
}
func Infof(log Logger, format string, arguments ...interface{}) {
	if log == nil {
		return
	}
	log.Infof(format, arguments...)
}
func Debug(log Logger, arguments ...interface{}) {
	if log == nil {
		return
	}
	log.Debug(arguments...)
}