func Allowed(allowed []string) Option {
	return func(l *logger) { l.allowed = makeSet(allowed) }
}
Allowed enumerates the accepted log levels. If a log event is encountered
with a level key set to a value that isn't explicitly allowed, the event
will be squelched, and ErrNotAllowed returned.
package level
import (
	"github.com/go-kit/kit/log"
)
var (
	levelKey        = "level"
	errorLevelValue = "error"
	warnLevelValue  = "warn"
	infoLevelValue  = "info"
	debugLevelValue = "debug"
)
func AllowAll() []string {
	return AllowDebugAndAbove()
}
func AllowDebugAndAbove() []string {
	return []string{errorLevelValue, warnLevelValue, infoLevelValue, debugLevelValue}
}
func AllowInfoAndAbove() []string {
	return []string{errorLevelValue, warnLevelValue, infoLevelValue}
}
func AllowWarnAndAbove() []string {
	return []string{errorLevelValue, warnLevelValue}
}
func AllowErrorOnly() []string {
	return []string{errorLevelValue}
}
func AllowNone() []string {
	return []string{}
}
func Error(logger log.Logger) log.Logger {
	return log.NewContext(logger).WithPrefix(levelKey, errorLevelValue)
}
func Warn(logger log.Logger) log.Logger {
	return log.NewContext(logger).WithPrefix(levelKey, warnLevelValue)
}
func Info(logger log.Logger) log.Logger {
	return log.NewContext(logger).WithPrefix(levelKey, infoLevelValue)
}
func Debug(logger log.Logger) log.Logger {
	return log.NewContext(logger).WithPrefix(levelKey, debugLevelValue)
}
func New(next log.Logger, options ...Option) log.Logger {
	l := logger{
		next: next,
	}
	for _, option := range options {
		option(&l)
	}
	return &l
}