github.com/whoyao/protocol@v0.0.0-20230519045905-2d8ace718ca5/logger/pionlogger/logadapter.go (about) 1 package pionlogger 2 3 import ( 4 "fmt" 5 "strings" 6 7 "go.uber.org/zap/zapcore" 8 9 "github.com/whoyao/protocol/logger" 10 ) 11 12 // implements webrtc.LeveledLogger 13 type logAdapter struct { 14 logger logger.Logger 15 level zapcore.Level 16 ignoredPrefixes []string 17 } 18 19 func (l *logAdapter) Trace(msg string) { 20 // ignore trace 21 } 22 23 func (l *logAdapter) Tracef(format string, args ...interface{}) { 24 // ignore trace 25 } 26 27 func (l *logAdapter) Debug(msg string) { 28 if l.level > zapcore.DebugLevel { 29 return 30 } 31 if l.shouldIgnore(msg) { 32 return 33 } 34 l.logger.Debugw(msg) 35 } 36 37 func (l *logAdapter) Debugf(format string, args ...interface{}) { 38 if l.level > zapcore.DebugLevel { 39 return 40 } 41 msg := fmt.Sprintf(format, args...) 42 if l.shouldIgnore(msg) { 43 return 44 } 45 l.logger.Debugw(msg) 46 } 47 48 func (l *logAdapter) Info(msg string) { 49 if l.level > zapcore.InfoLevel { 50 return 51 } 52 if l.shouldIgnore(msg) { 53 return 54 } 55 l.logger.Infow(msg) 56 } 57 58 func (l *logAdapter) Infof(format string, args ...interface{}) { 59 if l.level > zapcore.InfoLevel { 60 return 61 } 62 msg := fmt.Sprintf(format, args...) 63 if l.shouldIgnore(msg) { 64 return 65 } 66 l.logger.Infow(msg) 67 } 68 69 func (l *logAdapter) Warn(msg string) { 70 if l.level > zapcore.WarnLevel { 71 return 72 } 73 if l.shouldIgnore(msg) { 74 return 75 } 76 l.logger.Warnw(msg, nil) 77 } 78 79 func (l *logAdapter) Warnf(format string, args ...interface{}) { 80 if l.level > zapcore.WarnLevel { 81 return 82 } 83 msg := fmt.Sprintf(format, args...) 84 if l.shouldIgnore(msg) { 85 return 86 } 87 l.logger.Warnw(msg, nil) 88 } 89 90 func (l *logAdapter) Error(msg string) { 91 if l.level > zapcore.ErrorLevel { 92 return 93 } 94 if l.shouldIgnore(msg) { 95 return 96 } 97 l.logger.Errorw(msg, nil) 98 } 99 100 func (l *logAdapter) Errorf(format string, args ...interface{}) { 101 if l.level > zapcore.ErrorLevel { 102 return 103 } 104 msg := fmt.Sprintf(format, args...) 105 if l.shouldIgnore(msg) { 106 return 107 } 108 l.logger.Errorw(msg, nil) 109 } 110 111 func (l *logAdapter) shouldIgnore(msg string) bool { 112 for _, prefix := range l.ignoredPrefixes { 113 if strings.HasPrefix(msg, prefix) { 114 return true 115 } 116 } 117 return false 118 }