golanggohlsrtmpwebrtcmedia-serverobs-studiortcprtmp-proxyrtmp-serverrtprtsprtsp-proxyrtsp-relayrtsp-serversrtstreamingwebrtc-proxy
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
551 B
30 lines
551 B
package core |
|
|
|
import ( |
|
"sync" |
|
"time" |
|
|
|
"github.com/bluenviron/mediamtx/internal/logger" |
|
) |
|
|
|
type limitedLogger struct { |
|
w logger.Writer |
|
mutex sync.Mutex |
|
lastPrinted time.Time |
|
} |
|
|
|
func newLimitedLogger(w logger.Writer) *limitedLogger { |
|
return &limitedLogger{ |
|
w: w, |
|
} |
|
} |
|
|
|
func (l *limitedLogger) Log(level logger.Level, format string, args ...interface{}) { |
|
now := time.Now() |
|
l.mutex.Lock() |
|
if now.Sub(l.lastPrinted) >= minIntervalBetweenWarnings { |
|
l.lastPrinted = now |
|
l.w.Log(level, format, args...) |
|
} |
|
l.mutex.Unlock() |
|
}
|
|
|