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  }