func (l *Logger) acquireLog(level Level, msg string, withPrintln bool) *Log {
	log, ok := l.logs.Get().(*Log)
	if !ok {
		log = &Log{
			Logger: l,
		}
	}
	log.NewLine = withPrintln
	log.Time = time.Now()
	log.Level = level
	log.Message = msg
	return log
}
acquireLog returns a new log fom the pool.
package golog
import (
	"fmt"
	"io"
	"os"
	"sync"
	"time"
	"github.com/kataras/pio"
)
type Handler func(value *Log) (handled bool)
type Logger struct {
	Prefix     []byte
	Level      Level
	TimeFormat string
	NewLine  bool
	mu       sync.Mutex
	Printer  *pio.Printer
	handlers []Handler
	once     sync.Once
	logs     sync.Pool
	children *loggerMap
}
func New() *Logger {
	return &Logger{
		Level:      InfoLevel,
		TimeFormat: "2006/01/02 15:04",
		NewLine:    true,
		Printer:    pio.NewPrinter("", os.Stdout).EnableDirectOutput().Hijack(logHijacker),
		children:   newLoggerMap(),
	}
}