Skip to content

Commit

Permalink
Refactor loglevel based on debug in configmap
Browse files Browse the repository at this point in the history
We hold these truths to be self-evident:
log.info -> info, log.v(1).info -> debug, log.error-> error, log.v(2).info-> develop level log

If config.Debug=true, then loglevel=1, if command is passed in loglevel and greater than debug loglevel,
then the loglevel is overridden.
Use another log in config.go.
  • Loading branch information
zhengxiexie committed Aug 10, 2023
1 parent d4be8a7 commit 4bb0056
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 10 deletions.
4 changes: 2 additions & 2 deletions cmd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,13 @@ func init() {
utilruntime.Must(v1alpha1.AddToScheme(scheme))
config.AddFlags()

logf.SetLogger(logger.ZapLogger())
cf, err = config.NewNSXOperatorConfigFromFile()
if err != nil {
log.Error(err, "load config file error")
os.Exit(1)
}

logf.SetLogger(logger.ZapLogger(cf))

if os.Getenv("NSX_OPERATOR_NAMESPACE") != "" {
nsxOperatorNamespace = os.Getenv("NSX_OPERATOR_NAMESPACE")
}
Expand Down
15 changes: 10 additions & 5 deletions pkg/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import (
"flag"
"io/ioutil"

"go.uber.org/zap"
ini "gopkg.in/ini.v1"
logf "sigs.k8s.io/controller-runtime/pkg/log"

"github.com/vmware-tanzu/nsx-operator/pkg/nsx/auth"
"github.com/vmware-tanzu/nsx-operator/pkg/nsx/auth/jwt"
Expand All @@ -25,7 +25,7 @@ var (
LogLevel int
ProbeAddr, MetricsAddr string
configFilePath = ""
log = logf.Log.WithName("config")
log *zap.SugaredLogger
tokenProvider auth.TokenProvider
)

Expand All @@ -39,6 +39,10 @@ type NSXOperatorConfig struct {
*HAConfig
}

func init() {
zapLogger, _ := zap.NewProduction()
log = zapLogger.Sugar()
}
func (operatorConfig *NSXOperatorConfig) HAEnabled() bool {
if operatorConfig.EnableHA == nil || *operatorConfig.EnableHA == true {
return true
Expand Down Expand Up @@ -109,6 +113,7 @@ func UpdateConfigFilePath(configFile string) {
}

func NewNSXOperatorConfigFromFile() (*NSXOperatorConfig, error) {
log.Info("loading NSX Operator configuration file", "path", configFilePath)
nsxOperatorConfig := NewNSXOpertorConfig()

cfg := ini.Empty()
Expand Down Expand Up @@ -186,7 +191,7 @@ func (operatorConfig *NSXOperatorConfig) GetTokenProvider() auth.TokenProvider {
}

func (operatorConfig *NSXOperatorConfig) createTokenProvider() error {
log.V(1).Info("try to load VC host CA")
log.Info("try to load VC host CA")
var vcCaCert []byte
var err error
if !operatorConfig.Insecure {
Expand Down Expand Up @@ -247,11 +252,11 @@ func (nsxConfig *NsxConfig) validate() error {
}
tpCount := len(nsxConfig.Thumbprint)
if tpCount == 0 {
log.V(1).Info("no thumbprint provided")
log.Info("no thumbprint provided")
return nil
}
if tpCount == 1 {
log.V(1).Info("all endpoints share one thumbprint")
log.Info("all endpoints share one thumbprint")
return nil
}
if tpCount > 1 && tpCount != mCount {
Expand Down
21 changes: 18 additions & 3 deletions pkg/logger/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,21 @@ func init() {
Log = logf.Log.WithName("nsx-operator")
}

func ZapLogger() logr.Logger {
// If debug set in configmap, set log level to 1.
// If loglevel set in command line and greater than debug log level, set it to command line level.
func getLogLevel(cf *config.NSXOperatorConfig) int {
logLevel := 0
if cf.DefaultConfig.Debug {
logLevel = 1
}
realLogLevel := logLevel
if config.LogLevel > logLevel {
realLogLevel = config.LogLevel
}
return realLogLevel
}

func ZapLogger(cf *config.NSXOperatorConfig) logr.Logger {
encoderConf := zapcore.EncoderConfig{
CallerKey: "caller_line",
LevelKey: "level_name",
Expand All @@ -55,9 +69,10 @@ func ZapLogger() logr.Logger {
// In level.go of zapcore, higher levels are more important.
// However, in logr.go, a higher verbosity level means a log message is less important.
// So we need to reverse the order of the levels.
opts.Level = zapcore.Level(-1 * config.LogLevel)
logLevel := getLogLevel(cf)
opts.Level = zapcore.Level(-1 * logLevel)
opts.ZapOpts = append(opts.ZapOpts, zap.AddCaller(), zap.AddCallerSkip(0))
if config.LogLevel > 0 {
if logLevel > 0 {
opts.StacktraceLevel = zap.ErrorLevel
}

Expand Down

0 comments on commit 4bb0056

Please sign in to comment.