mirror of
https://github.com/livekit/livekit.git
synced 2026-04-07 14:15:41 +00:00
83 lines
1.8 KiB
Go
83 lines
1.8 KiB
Go
package logger
|
|
|
|
import (
|
|
"github.com/go-logr/zapr"
|
|
"github.com/pion/ion-sfu/pkg/buffer"
|
|
"github.com/pion/ion-sfu/pkg/sfu"
|
|
"go.uber.org/zap"
|
|
"go.uber.org/zap/zapcore"
|
|
)
|
|
|
|
var (
|
|
wrappedLogger *zap.SugaredLogger
|
|
// zap logger
|
|
defaultLogger *zap.Logger
|
|
)
|
|
|
|
func GetLogger() *zap.Logger {
|
|
if defaultLogger == nil {
|
|
InitDevelopment("")
|
|
}
|
|
return defaultLogger
|
|
}
|
|
|
|
// valid levels: debug, info, warn, error, fatal, panic
|
|
func initLogger(config zap.Config, level string) {
|
|
if level != "" {
|
|
lvl := zapcore.Level(0)
|
|
if err := lvl.UnmarshalText([]byte(level)); err == nil {
|
|
config.Level = zap.NewAtomicLevelAt(lvl)
|
|
}
|
|
}
|
|
// skip one level to remove this helper file
|
|
l, _ := config.Build(zap.AddCallerSkip(1))
|
|
wrappedLogger = l.Sugar()
|
|
|
|
defaultLogger, _ = config.Build()
|
|
ionLogger := zapr.NewLogger(defaultLogger)
|
|
sfu.Logger = ionLogger
|
|
buffer.Logger = ionLogger
|
|
}
|
|
|
|
func InitProduction(logLevel string) {
|
|
initLogger(zap.NewProductionConfig(), logLevel)
|
|
}
|
|
|
|
func InitDevelopment(logLevel string) {
|
|
initLogger(zap.NewDevelopmentConfig(), logLevel)
|
|
}
|
|
|
|
func Debugw(msg string, keysAndValues ...interface{}) {
|
|
if wrappedLogger == nil {
|
|
return
|
|
}
|
|
wrappedLogger.Debugw(msg, keysAndValues...)
|
|
}
|
|
|
|
func Infow(msg string, keysAndValues ...interface{}) {
|
|
if wrappedLogger == nil {
|
|
return
|
|
}
|
|
wrappedLogger.Infow(msg, keysAndValues...)
|
|
}
|
|
|
|
func Warnw(msg string, err error, keysAndValues ...interface{}) {
|
|
if wrappedLogger == nil {
|
|
return
|
|
}
|
|
if err != nil {
|
|
keysAndValues = append([]interface{}{"error", err}, keysAndValues...)
|
|
}
|
|
wrappedLogger.Warnw(msg, keysAndValues...)
|
|
}
|
|
|
|
func Errorw(msg string, err error, keysAndValues ...interface{}) {
|
|
if wrappedLogger == nil {
|
|
return
|
|
}
|
|
if err != nil {
|
|
keysAndValues = append([]interface{}{"error", err}, keysAndValues...)
|
|
}
|
|
wrappedLogger.Errorw(msg, keysAndValues...)
|
|
}
|