func (h *StdoutHandler) SetFormat(format string) {
	h.render = newPatternRender(format)
}
SetFormat set stdout log output format
%T time format at "15:04:05.999"
%t time format at "15:04:05"
%D data format at "2006/01/02"
%d data format at "01/02"
%L log level e.g. INFO WARN ERROR
%f function name and line number e.g. model.Get:121
%i instance id
%e deploy env e.g. dev uat fat prod
%z zone
%S full file name and line number: /a/b/c/d.go:23
%s final file name element and line number: d.go:23
%M log message and additional fields: key=value this is log message
package log
import (
	"context"
	"os"
	"time"
)
const defaultPattern = "%L %d-%T %f %M"
var _defaultStdout = NewStdout()
type StdoutHandler struct {
	render Render
}
func NewStdout() *StdoutHandler {
	return &StdoutHandler{render: newPatternRender(defaultPattern)}
}
func (h *StdoutHandler) Log(ctx context.Context, lv Level, args ...D) {
	d := toMap(args...)
	addExtraField(ctx, d)
	d[_time] = time.Now().Format(_timeFormat)
	h.render.Render(os.Stderr, d)
	os.Stderr.Write([]byte("\n"))
}
func (h *StdoutHandler) Close() error {
	return nil
}