Improve logging
This commit is contained in:
		
							parent
							
								
									87942d044b
								
							
						
					
					
						commit
						14950293c5
					
				|  | @ -2,12 +2,17 @@ package main | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"flag" | 	"flag" | ||||||
| 	"log" | 	"fmt" | ||||||
|  | 	"os" | ||||||
| 	"runtime" | 	"runtime" | ||||||
| 
 | 
 | ||||||
| 	"github.com/VirtusLab/jenkins-operator/pkg/apis" | 	"github.com/VirtusLab/jenkins-operator/pkg/apis" | ||||||
| 	"github.com/VirtusLab/jenkins-operator/pkg/controller" | 	"github.com/VirtusLab/jenkins-operator/pkg/controller" | ||||||
| 	k8sutil "github.com/operator-framework/operator-sdk/pkg/util/k8sutil" | 	"github.com/VirtusLab/jenkins-operator/pkg/log" | ||||||
|  | 	"github.com/VirtusLab/jenkins-operator/version" | ||||||
|  | 
 | ||||||
|  | 	"github.com/operator-framework/operator-sdk/pkg/sdk" | ||||||
|  | 	"github.com/operator-framework/operator-sdk/pkg/k8sutil" | ||||||
| 	sdkVersion "github.com/operator-framework/operator-sdk/version" | 	sdkVersion "github.com/operator-framework/operator-sdk/version" | ||||||
| 	_ "k8s.io/client-go/plugin/pkg/client/auth/gcp" | 	_ "k8s.io/client-go/plugin/pkg/client/auth/gcp" | ||||||
| 	"sigs.k8s.io/controller-runtime/pkg/client/config" | 	"sigs.k8s.io/controller-runtime/pkg/client/config" | ||||||
|  | @ -15,50 +20,66 @@ import ( | ||||||
| 	"sigs.k8s.io/controller-runtime/pkg/runtime/signals" | 	"sigs.k8s.io/controller-runtime/pkg/runtime/signals" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func printVersion() { | func printInfo(namespace string) { | ||||||
| 	log.Printf("Go Version: %s", runtime.Version()) | 	log.Log.Info(fmt.Sprintf("Version: %s", version.Version)) | ||||||
| 	log.Printf("Go OS/Arch: %s/%s", runtime.GOOS, runtime.GOARCH) | 	log.Log.Info(fmt.Sprintf("Git commit: %s", version.GitCommit)) | ||||||
| 	log.Printf("operator-sdk Version: %v", sdkVersion.Version) | 	log.Log.Info(fmt.Sprintf("Go Version: %s", runtime.Version())) | ||||||
|  | 	log.Log.Info(fmt.Sprintf("Go OS/Arch: %s/%s", runtime.GOOS, runtime.GOARCH)) | ||||||
|  | 	log.Log.Info(fmt.Sprintf("operator-sdk Version: %v", sdkVersion.Version)) | ||||||
|  | 	log.Log.Info(fmt.Sprintf("watch namespace: %v", namespace)) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func main() { | func main() { | ||||||
| 	printVersion() | 	debug := flag.Bool("debug", false, "Set log level to debug") | ||||||
| 	flag.Parse() | 	flag.Parse() | ||||||
| 
 | 
 | ||||||
|  | 	if err := log.SetupLogger(debug); err != nil { | ||||||
|  | 		log.Log.Error(err, "unable to construct the logger") | ||||||
|  | 		os.Exit(-1) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	namespace, err := k8sutil.GetWatchNamespace() | 	namespace, err := k8sutil.GetWatchNamespace() | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		log.Fatalf("failed to get watch namespace: %v", err) | 		log.Log.Error(err, "failed to get watch namespace") | ||||||
|  | 		os.Exit(-1) | ||||||
| 	} | 	} | ||||||
|  | 	printInfo(namespace) | ||||||
| 
 | 
 | ||||||
| 	// TODO: Expose metrics port after SDK uses controller-runtime's dynamic client
 | 	sdk.ExposeMetricsPort() | ||||||
| 	// sdk.ExposeMetricsPort()
 |  | ||||||
| 
 | 
 | ||||||
| 	// Get a config to talk to the apiserver
 | 	// Get a config to talk to the apiserver
 | ||||||
| 	cfg, err := config.GetConfig() | 	cfg, err := config.GetConfig() | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		log.Fatal(err) | 		log.Log.Error(err, "failed to get config") | ||||||
|  | 		os.Exit(-1) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// Create a new Cmd to provide shared dependencies and start components
 | 	// Create a new Cmd to provide shared dependencies and start components
 | ||||||
| 	mgr, err := manager.New(cfg, manager.Options{Namespace: namespace}) | 	mgr, err := manager.New(cfg, manager.Options{Namespace: namespace}) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		log.Fatal(err) | 		log.Log.Error(err, "failed to create manager") | ||||||
|  | 		os.Exit(-1) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	log.Print("Registering Components.") | 	log.Log.Info("Registering Components.") | ||||||
| 
 | 
 | ||||||
| 	// Setup Scheme for all resources
 | 	// Setup Scheme for all resources
 | ||||||
| 	if err := apis.AddToScheme(mgr.GetScheme()); err != nil { | 	if err := apis.AddToScheme(mgr.GetScheme()); err != nil { | ||||||
| 		log.Fatal(err) | 		log.Log.Error(err, "failed to setup scheme") | ||||||
|  | 		os.Exit(-1) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// Setup all Controllers
 | 	// Setup all Controllers
 | ||||||
| 	if err := controller.AddToManager(mgr); err != nil { | 	if err := controller.AddToManager(mgr); err != nil { | ||||||
| 		log.Fatal(err) | 		log.Log.Error(err, "failed to setup controllers") | ||||||
|  | 		os.Exit(-1) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	log.Print("Starting the Cmd.") | 	log.Log.Info("Starting the Cmd.") | ||||||
| 
 | 
 | ||||||
| 	// Start the Cmd
 | 	// Start the Cmd
 | ||||||
| 	log.Fatal(mgr.Start(signals.SetupSignalHandler())) | 	if err := mgr.Start(signals.SetupSignalHandler()); err != nil { | ||||||
|  | 		log.Log.Error(err, "failed to start cmd") | ||||||
|  | 		os.Exit(-1) | ||||||
|  | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,33 @@ | ||||||
|  | // 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 | ||||||
|  | } | ||||||
|  | @ -1,5 +1,4 @@ | ||||||
| package version | package version | ||||||
| 
 | 
 | ||||||
| var ( | var Version string | ||||||
| 	Version = "0.0.1" | var GitCommit string | ||||||
| ) |  | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue