52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
| package log
 | |
| 
 | |
| import (
 | |
| 	"log"
 | |
| 
 | |
| 	"github.com/go-logr/logr"
 | |
| 	"github.com/go-logr/zapr"
 | |
| 	"go.uber.org/zap"
 | |
| 	logf "sigs.k8s.io/controller-runtime/pkg/runtime/log"
 | |
| )
 | |
| 
 | |
| // Log represents global logger
 | |
| var Log = logf.Log.WithName("controller-jenkins")
 | |
| 
 | |
| // Debug indicates that debug level is set
 | |
| var Debug bool
 | |
| 
 | |
| const (
 | |
| 	// VWarn defines warning log level
 | |
| 	VWarn = -1
 | |
| 	// VDebug defines debug log level
 | |
| 	VDebug = 1
 | |
| )
 | |
| 
 | |
| func zapLogger(debug bool) logr.Logger {
 | |
| 	var zapLog *zap.Logger
 | |
| 	var err error
 | |
| 	zapLogCfg := zap.NewDevelopmentConfig()
 | |
| 	if debug {
 | |
| 		zapLogCfg.Level = zap.NewAtomicLevelAt(zap.DebugLevel)
 | |
| 	} else {
 | |
| 		zapLogCfg.Level = zap.NewAtomicLevelAt(zap.InfoLevel)
 | |
| 	}
 | |
| 	zapLog, err = zapLogCfg.Build(zap.AddStacktrace(zap.DPanicLevel), zap.AddCallerSkip(1))
 | |
| 	// who watches the watchmen?
 | |
| 	fatalIfErr(err, log.Fatalf)
 | |
| 	return zapr.NewLogger(zapLog)
 | |
| }
 | |
| 
 | |
| func fatalIfErr(err error, f func(format string, v ...interface{})) {
 | |
| 	if err != nil {
 | |
| 		f("unable to construct the logger: %v", err)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| // SetupLogger setups global logger
 | |
| func SetupLogger(debug bool) {
 | |
| 	Debug = debug
 | |
| 	logf.SetLogger(zapLogger(debug))
 | |
| 	Log = logf.Log.WithName("controller-jenkins")
 | |
| }
 |