kubernetes-operator/pkg/log/log.go

34 lines
835 B
Go

// TODO delete after resolve issue https://github.com/operator-framework/operator-sdk/issues/503
package log
import (
"github.com/go-logr/logr"
"github.com/go-logr/zapr"
"go.uber.org/zap"
)
var Log logr.Logger
// ZapLogger is a Logger implementation.
// If development is true, a Zap development config will be used
// (stacktraces on warnings, no sampling), otherwise a Zap production
// config will be used (stacktraces on errors, sampling).
func SetupLogger(development *bool) error {
var zapLog *zap.Logger
var err error
if *development {
zapLogCfg := zap.NewDevelopmentConfig()
zapLog, err = zapLogCfg.Build(zap.AddCallerSkip(1))
} else {
zapLogCfg := zap.NewProductionConfig()
zapLog, err = zapLogCfg.Build(zap.AddCallerSkip(1))
}
if err != nil {
return err
}
Log = zapr.NewLogger(zapLog)
return nil
}