mirror of
https://github.com/livekit/livekit.git
synced 2026-05-25 14:15:15 +00:00
Integrated logging with Pion (#341)
* Integrated logging with Pion * handle nil logger
This commit is contained in:
@@ -28,7 +28,7 @@ require (
|
||||
github.com/pion/stun v0.3.5
|
||||
github.com/pion/transport v0.13.0
|
||||
github.com/pion/turn/v2 v2.0.6
|
||||
github.com/pion/webrtc/v3 v3.1.14-0.20220107154618-d4b645635c44
|
||||
github.com/pion/webrtc/v3 v3.1.15
|
||||
github.com/pkg/errors v0.9.1
|
||||
github.com/prometheus/client_golang v1.11.0
|
||||
github.com/rs/cors v1.8.2
|
||||
@@ -59,7 +59,7 @@ require (
|
||||
github.com/mattn/go-runewidth v0.0.9 // indirect
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
|
||||
github.com/pion/datachannel v1.5.2 // indirect
|
||||
github.com/pion/dtls/v2 v2.0.13 // indirect
|
||||
github.com/pion/dtls/v2 v2.1.0 // indirect
|
||||
github.com/pion/mdns v0.0.5 // indirect
|
||||
github.com/pion/randutil v0.1.0 // indirect
|
||||
github.com/pion/sctp v1.8.2 // indirect
|
||||
@@ -72,7 +72,7 @@ require (
|
||||
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
||||
go.uber.org/atomic v1.7.0 // indirect
|
||||
go.uber.org/multierr v1.6.0 // indirect
|
||||
golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871 // indirect
|
||||
golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3 // indirect
|
||||
golang.org/x/mod v0.5.1 // indirect
|
||||
golang.org/x/net v0.0.0-20211216030914-fe4d6282115f // indirect
|
||||
golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359 // indirect
|
||||
|
||||
@@ -170,8 +170,9 @@ github.com/onsi/gomega v1.17.0 h1:9Luw4uT5HTjHTN8+aNcSThgH1vdXnmdJ8xIfZ4wyTRE=
|
||||
github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
|
||||
github.com/pion/datachannel v1.5.2 h1:piB93s8LGmbECrpO84DnkIVWasRMk3IimbcXkTQLE6E=
|
||||
github.com/pion/datachannel v1.5.2/go.mod h1:FTGQWaHrdCwIJ1rw6xBIfZVkslikjShim5yr05XFuCQ=
|
||||
github.com/pion/dtls/v2 v2.0.13 h1:toLgXzq42/MEmfgkXDfzdnwLHMi4tfycaQPGkv9tzRE=
|
||||
github.com/pion/dtls/v2 v2.0.13/go.mod h1:OaE7eTM+ppaUhJ99OTO4aHl9uY6vPrT1gPY27uNTxRY=
|
||||
github.com/pion/dtls/v2 v2.1.0 h1:g6gtKVNLp6URDkv9OijFJl16kqGHzVzZG+Fa4A38GTY=
|
||||
github.com/pion/dtls/v2 v2.1.0/go.mod h1:qG3gA7ZPZemBqpEFqRKyURYdKEwFZQCGb7gv9T3ON3Y=
|
||||
github.com/pion/ice/v2 v2.1.18 h1:mDzd+iPKJmU30p4Kb+RPjK9olORLqJmQdiTUnVba50g=
|
||||
github.com/pion/ice/v2 v2.1.18/go.mod h1:9jDr0iIUg8P6+0Jq8QJ/eFSkX3JnsPd293TjCdkfpTs=
|
||||
github.com/pion/interceptor v0.1.4 h1:qL2xrdR6taLkVxEQj39btwEPRO3i9yd/olEw6+20dag=
|
||||
@@ -205,8 +206,8 @@ github.com/pion/turn/v2 v2.0.6 h1:AsXjSPR6Im15DMTB39NlfdTY9BQfieANPBjdg/aVNwY=
|
||||
github.com/pion/turn/v2 v2.0.6/go.mod h1:+y7xl719J8bAEVpSXBXvTxStjJv3hbz9YFflvkpcGPw=
|
||||
github.com/pion/udp v0.1.1 h1:8UAPvyqmsxK8oOjloDk4wUt63TzFe9WEJkg5lChlj7o=
|
||||
github.com/pion/udp v0.1.1/go.mod h1:6AFo+CMdKQm7UiA0eUPA8/eVCTx8jBIITLZHc9DWX5M=
|
||||
github.com/pion/webrtc/v3 v3.1.14-0.20220107154618-d4b645635c44 h1:iyFRWBUrSxF8EHUtcvioKBzm1hOB/F15Zph93+7MWro=
|
||||
github.com/pion/webrtc/v3 v3.1.14-0.20220107154618-d4b645635c44/go.mod h1:Vn1lK5z9AEmabct0TirkWdt67kpzd40KrpkxPIvQfgE=
|
||||
github.com/pion/webrtc/v3 v3.1.15 h1:JUNR95xdhcRliAaUQjnuttFPdxGxW/ixcwnHRjQFWOU=
|
||||
github.com/pion/webrtc/v3 v3.1.15/go.mod h1:2brQHPJl93QVgbcVElY5syrrEzx5PXCxjrQ5g7Hwky8=
|
||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
@@ -284,8 +285,9 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
|
||||
golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871 h1:/pEO3GD/ABYAjuakUS6xSEmmlyVS4kxBNkeA9tLJiTI=
|
||||
golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3 h1:0es+/5331RGQPcXlMfP+WrnIIS6dNnNRe0WB02W0F4M=
|
||||
golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
package rtc
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/go-logr/logr"
|
||||
"github.com/pion/logging"
|
||||
)
|
||||
|
||||
// implements webrtc.LoggerFactory
|
||||
type loggerFactory struct {
|
||||
logger logr.Logger
|
||||
}
|
||||
|
||||
func newLoggerFactory(logger logr.Logger) *loggerFactory {
|
||||
if logger.GetSink() == nil {
|
||||
return nil
|
||||
}
|
||||
return &loggerFactory{
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
|
||||
func (f *loggerFactory) NewLogger(scope string) logging.LeveledLogger {
|
||||
return &logAdapter{
|
||||
logger: f.logger.WithName(scope),
|
||||
// treat info as debug
|
||||
verbosity: 1,
|
||||
}
|
||||
}
|
||||
|
||||
// implements webrtc.LeveledLogger
|
||||
type logAdapter struct {
|
||||
logger logr.Logger
|
||||
// 0 - most verbose
|
||||
verbosity int
|
||||
}
|
||||
|
||||
func (l *logAdapter) Trace(msg string) {
|
||||
l.Tracef(msg)
|
||||
}
|
||||
|
||||
func (l *logAdapter) Tracef(format string, args ...interface{}) {
|
||||
l.logger.V(2 + l.verbosity).Info(fmt.Sprintf(format, args...))
|
||||
}
|
||||
|
||||
func (l *logAdapter) Debug(msg string) {
|
||||
l.Debugf(msg)
|
||||
}
|
||||
|
||||
func (l *logAdapter) Debugf(format string, args ...interface{}) {
|
||||
l.logger.V(1 + l.verbosity).Info(fmt.Sprintf(format, args...))
|
||||
}
|
||||
|
||||
func (l *logAdapter) Info(msg string) {
|
||||
l.Infof(msg)
|
||||
}
|
||||
|
||||
func (l *logAdapter) Infof(format string, args ...interface{}) {
|
||||
l.logger.V(l.verbosity).Info(fmt.Sprintf(format, args...))
|
||||
}
|
||||
|
||||
func (l *logAdapter) Warn(msg string) {
|
||||
l.Warnf(msg)
|
||||
}
|
||||
|
||||
func (l *logAdapter) Warnf(format string, args ...interface{}) {
|
||||
l.logger.Info(fmt.Sprintf(format, args...))
|
||||
}
|
||||
|
||||
func (l *logAdapter) Error(msg string) {
|
||||
l.Errorf(msg)
|
||||
}
|
||||
|
||||
func (l *logAdapter) Errorf(format string, args ...interface{}) {
|
||||
l.logger.Error(nil, fmt.Sprintf(format, args...))
|
||||
}
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/bep/debounce"
|
||||
"github.com/go-logr/logr"
|
||||
"github.com/livekit/protocol/livekit"
|
||||
"github.com/livekit/protocol/logger"
|
||||
"github.com/pion/interceptor"
|
||||
@@ -84,6 +85,10 @@ func newPeerConnection(params TransportParams) (*webrtc.PeerConnection, *webrtc.
|
||||
|
||||
se := params.Config.SettingEngine
|
||||
se.DisableMediaEngineCopy(true)
|
||||
lf := newLoggerFactory(logr.Logger(params.Logger))
|
||||
if lf != nil {
|
||||
se.LoggerFactory = lf
|
||||
}
|
||||
|
||||
ir := &interceptor.Registry{}
|
||||
if params.Target == livekit.SignalTarget_SUBSCRIBER {
|
||||
|
||||
@@ -229,6 +229,11 @@ func (d *DownTrack) Kind() webrtc.RTPCodecType {
|
||||
return d.kind
|
||||
}
|
||||
|
||||
// RID is required by `webrtc.TrackLocal` interface
|
||||
func (d *DownTrack) RID() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (d *DownTrack) SSRC() uint32 {
|
||||
return d.ssrc
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user