func Bool(name string, val bool) Field {
	return Field(zap.Bool(name, val))
}
Bool returns a bool field
package log
import (
	"fmt"
	"runtime/debug"
	"time"
	"go.uber.org/zap"
	"go.uber.org/zap/zapcore"
)
var NilLogger Log
type Log struct {
	logger *zap.Logger
	sugar  *zap.SugaredLogger
	lvl    *zap.AtomicLevel
}
func (l Log) Info(format string, args ...interface{}) {
	l.sugar.Infof(format, args...)
}
func (l Log) Debug(format string, args ...interface{}) {
	l.sugar.Debugf(format, args...)
}
func (l Log) Error(format string, args ...interface{}) {
	l.sugar.Errorf(format, args...)
}
func (l Log) Warning(format string, args ...interface{}) {
	l.sugar.Warnf(format, args...)
}
func (l Log) Panic(format string, args ...interface{}) {
	l.sugar.Error("Fatal: goroutine panicked. Stacktrace: ", string(debug.Stack()))
	l.sugar.Panicf(format, args...)
}
type Field zap.Field
func (f Field) Field() Field { return f }
func String(name, val string) Field {
	return Field(zap.String(name, val))
}
func ByteString(name string, val []byte) Field {
	return Field(zap.ByteString(name, val))
}
func Int(name string, val int) Field {
	return Field(zap.Int(name, val))
}
func Int32(name string, val int32) Field {
	return Field(zap.Int32(name, val))
}
func Uint32(name string, val uint32) Field {
	return Field(zap.Uint32(name, val))
}
func Uint64(name string, val uint64) Field {
	return Field(zap.Uint64(name, val))
}
func Namespace(name string) Field {
	return Field(zap.Namespace(name))
}