Files
livekit/pkg/logger/logger.go
David Colburn 69b94e1142 error logging
2021-06-03 01:57:43 -05:00

78 lines
1.4 KiB
Go

package logger
import (
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
var (
logger *zap.SugaredLogger
)
func getLogger() *zap.SugaredLogger {
if logger == nil {
InitDevelopment("")
}
return logger
}
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)
}
}
l, _ := config.Build(zap.AddCallerSkip(1))
logger = l.Sugar()
}
func InitProduction(logLevel string) {
initLogger(zap.NewProductionConfig(), logLevel)
}
func InitDevelopment(logLevel string) {
initLogger(zap.NewDevelopmentConfig(), logLevel)
}
func Debugw(msg string, keysAndValues ...interface{}) {
if logger == nil {
return
}
logger.Debugw(msg, keysAndValues...)
}
func Infow(msg string, keysAndValues ...interface{}) {
if logger == nil {
return
}
logger.Infow(msg, keysAndValues...)
}
func Warnw(msg string, err error, keysAndValues ...interface{}) {
if logger == nil {
return
}
if err != nil {
keysAndValues = append([]interface{}{"error", err}, keysAndValues...)
}
logger.Warnw(msg, keysAndValues...)
}
func Errorw(msg string, err error, keysAndValues ...interface{}) {
if logger == nil {
return
}
if err != nil {
keysAndValues = append([]interface{}{"error", err}, keysAndValues...)
}
logger.Errorw(msg, keysAndValues...)
}
func Desugar() *zap.Logger {
if logger == nil {
getLogger()
}
return logger.Desugar()
}