func (log *Logger) Trace(args ...interface{}) {
	log.Log(1, iface.Trace, args...)
}
Trace calls Log with level Trace to emit a log.
package logger
import (
	"errors"
	"fmt"
	"os"
	"path/filepath"
	"runtime"
	"runtime/debug"
	"strings"
	"sync"
	"time"
	"github.com/gxlog/gxlog/iface"
)
const callDepthOffset = 3
type Logger struct {
	config *Config
	slots  []slotLink
	equivalents [][]int
	countMap    map[locator]int64
	timeMap     map[locator]*timeQueue
	attr        copyOnWrite
	lock        *sync.Mutex
}
func New(config Config) *Logger {
	config.setDefaults()
	logger := &Logger{
		config:      &config,
		equivalents: make([][]int, MaxSlot),
		countMap:    make(map[locator]int64, mapInitCap),
		timeMap:     make(map[locator]*timeQueue, mapInitCap),
		lock:        new(sync.Mutex),
	}
	logger.initSlots()
	return logger
}