func EnableDebug(source string) bool {
	log.Lock()
	defer log.Unlock()
	return log.setDebug(source, true)
}
EnableDebug enables debug logging for the source.
package log
import (
	"fmt"
	"strings"
	"sync"
	"k8s.io/klog/v2"
)
type Level int
const (
	levelUnset Level = iota
	LevelDebug
	LevelInfo
	LevelWarn
	LevelError
	LevelPanic
	LevelFatal
)
var levelTag = map[Level]string{
	levelUnset: "?: ",
	LevelDebug: "D: ",
	LevelInfo:  "I: ",
	LevelWarn:  "W: ",
	LevelError: "E: ",
	LevelFatal: "F: ",
	LevelPanic: "P: ",
}
type Logger interface {
	Debugf(format string, v ...interface{})
	Infof(format string, v ...interface{})
	Warnf(format string, v ...interface{})
	Errorf(format string, v ...interface{})
	Panicf(format string, v ...interface{})
	Fatalf(format string, v ...interface{})
	Debug(format string, args ...interface{})
	Info(format string, args ...interface{})
	Warn(format string, args ...interface{})
	Error(format string, args ...interface{})
	Panic(format string, args ...interface{})
	Fatal(format string, args ...interface{})
	DebugBlock(prefix string, format string, args ...interface{})
	InfoBlock(prefix string, format string, args ...interface{})
	WarnBlock(prefix string, format string, args ...interface{})
	ErrorBlock(prefix string, format string, args ...interface{})
	EnableDebug(bool) bool
	DebugEnabled() bool
	Source() string
}
type logger uint
type logging struct {
	sync.RWMutex
	level   Level                
	dbgmap  srcmap               
	loggers map[string]logger    
	sources map[logger]string    
	debug   map[logger]struct{}  
	maxlen  int                  
	forced  bool                 
	prefix  bool                 
	aligned map[logger]string    
}
var log = &logging{
	level:   DefaultLevel,
	loggers: make(map[string]logger),
	sources: make(map[logger]string),
	aligned: make(map[logger]string),
	debug:   make(map[logger]struct{}),
}
func Get(source string) Logger {
	log.Lock()
	defer log.Unlock()
	return log.get(source)
}
func NewLogger(source string) Logger {
	return Get(source)
}