34 lines
835 B
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
|
|
}
|