| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 | package logimport (	"fmt"	"os")type LevelLogger struct {	Level  uint8	Logger Logger}func (d *LevelLogger) Error(f string, v ...any) {	if d.Level < LevelError {		return	}	d.Logger.Error(f, v...)}func (d *LevelLogger) Warn(f string, v ...any) {	if d.Level < LevelWarn {		return	}	d.Logger.Warn(f, v...)}func (d *LevelLogger) Info(f string, v ...any) {	if d.Level < LevelInfo {		return	}	d.Logger.Info(f, v...)}func (d *LevelLogger) Debug(f string, v ...any) {	if d.Level < LevelDebug {		return	}	d.Logger.Debug(f, v...)}func (d *LevelLogger) CallDepthPlus() {	d.Logger.CallDepthPlus()}func (d *LevelLogger) CallDepthMinus() {	d.Logger.CallDepthMinus()}func NewLevelLogger(level uint8, logger Logger) *LevelLogger {	return &LevelLogger{Level: level, Logger: logger}}type LevelLoggers []Loggerfunc (l LevelLoggers) Error(f string, v ...any) {	for _, logger := range l {		logger.Error(f, v...)	}}func (l LevelLoggers) Warn(f string, v ...any) {	for _, logger := range l {		logger.Warn(f, v...)	}}func (l LevelLoggers) Info(f string, v ...any) {	for _, logger := range l {		logger.Info(f, v...)	}}func (l LevelLoggers) Debug(f string, v ...any) {	for _, logger := range l {		logger.Debug(f, v...)	}}func (l LevelLoggers) CallDepthPlus() {	for _, logger := range l {		logger.CallDepthPlus()	}}func (l LevelLoggers) CallDepthMinus() {	for _, logger := range l {		logger.CallDepthMinus()	}}var (	// gLog are global default LevelLogger	gLog = LevelLoggers{NewLevelLogger(LevelDebug, NewLogger(4, os.Stdout))})// SetLevel// Deprecated, remove after laterfunc SetLevel(level uint8) {	for _, logger := range gLog {		if lg, ok := logger.(*LevelLogger); ok {			lg.Level = level		}	}}func SetServerMod(address string) {	client, err := NewClientLogger(address)	if err != nil {		panic(err)	}	gLog = LevelLoggers{client}}func SetOutput(logger ...Logger) {	gLog = logger}func Default() Logger {	return gLog}func Debug(f string, v ...any) {	gLog.Debug(f, v...)}func Info(f string, v ...any) {	gLog.Info(f, v...)}func Warn(f string, v ...any) {	gLog.Warn(f, v...)}func Error(f string, v ...any) {	gLog.Error(f, v...)}func Panic(f string, v ...any) {	gLog.Error(f, v...)	panic(fmt.Sprintf(f, v...))}func Fatal(f string, v ...any) {	gLog.Error(f, v...)	os.Exit(1)}
 |