func SetOutputByName(path string) error {
	return defaultLog.SetOutputByName(path)
}
SetOutputByName set log file use file name
package log
import (
	"fmt"
	"io"
	"log"
	"os"
	"runtime"
	"sync"
	"time"
)
const (
	Ldate = log.Ldate
	Llongfile = log.Llongfile
	Lmicroseconds = log.Lmicroseconds
	Lshortfile = log.Lshortfile
	LstdFlags = log.LstdFlags
	Ltime = log.Ltime
)
type (
	Level int
	Type int
)
const (
	fatalLevel = Type(0x1)
	errorLevel = Type(0x2)
	warnLevel  = Type(0x4)
	infoLevel  = Type(0x8)
	debugLevel = Type(0x10)
)
const (
	LogNone = Level(0x0)
	LogFatal = LogNone | Level(fatalLevel)
	LogError = LogFatal | Level(errorLevel)
	LogWarn = LogError | Level(warnLevel)
	LogInfo = LogWarn | Level(infoLevel)
	LogDebug = LogInfo | Level(debugLevel)
	LogAll = LogDebug
)
const (
	formatTimeDay  string = "20060102"
	formatTimeHour string = "2006010215"
)
var defaultLog = new()
func init() {
	SetFlags(Ldate | Ltime | Lmicroseconds | Lmicroseconds)
	SetHighlighting(runtime.GOOS != "windows")
}
func Logger() *log.Logger {
	return defaultLog._log
}
func FatalEnabled() bool {
	return defaultLog.isLevelEnabled(fatalLevel)
}
func ErrorEnabled() bool {
	return defaultLog.isLevelEnabled(errorLevel)
}
func WarnEnabled() bool {
	return defaultLog.isLevelEnabled(warnLevel)
}
func InfoEnabled() bool {
	return defaultLog.isLevelEnabled(infoLevel)
}
func DebugEnabled() bool {
	return defaultLog.isLevelEnabled(debugLevel)
}
func SetLevel(level Level) {
	defaultLog.SetLevel(level)
}
func GetLogLevel() Level {
	return defaultLog.level
}
func SetOutput(out io.Writer) {
	defaultLog.SetOutput(out)
}