Skip to content

Commit

Permalink
Merge pull request #576 from TaoZou1/logger
Browse files Browse the repository at this point in the history
Refactor ZapLogger
  • Loading branch information
TaoZou1 authored May 15, 2024
2 parents e415d52 + 9921fe3 commit 2ec6f93
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 26 deletions.
15 changes: 10 additions & 5 deletions pkg/clean/clean.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"context"
"errors"
"fmt"
"sync"
"time"

"github.com/vmware-tanzu/nsx-operator/pkg/config"
Expand All @@ -28,6 +29,7 @@ import (
)

var log = logger.Log
var once sync.Once

var Backoff = wait.Backoff{
Steps: 12,
Expand All @@ -47,11 +49,14 @@ var Backoff = wait.Backoff{
// InitCleanupServiceFailed indicate that error happened when trying to initialize cleanup service
// CleanupResourceFailed indicate that the cleanup operation failed at some services, the detailed will in the service logs
func Clean(ctx context.Context, cf *config.NSXOperatorConfig, logg *logr.Logger, debug bool, logLevel int) error {
if logg != nil {
logf.SetLogger(*logg)
} else {
logf.SetLogger(logger.ZapLogger(debug, logLevel))
}
// Clean may be called many times, only init once
once.Do(func() {
if logg != nil {
logf.SetLogger(*logg)
} else {
logf.SetLogger(logger.ZapLogger(debug, logLevel))
}
})
log.Info("starting NSX cleanup")
if err := cf.ValidateConfigFromCmd(); err != nil {
return errors.Join(nsxutil.ValidationFailed, err)
Expand Down
32 changes: 11 additions & 21 deletions pkg/logger/logger.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package logger

import (
"flag"
"os"
"time"

"github.com/go-logr/logr"
"github.com/go-logr/zapr"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
logf "sigs.k8s.io/controller-runtime/pkg/log"
zapcr "sigs.k8s.io/controller-runtime/pkg/log/zap"
)

const logTmFmtWithMS = "2006-01-02 15:04:05.000"
Expand Down Expand Up @@ -42,6 +42,7 @@ func getLogLevel(cfDebug bool, cfLogLevel int) int {
}

func ZapLogger(cfDebug bool, cfLogLevel int) logr.Logger {
logLevel := getLogLevel(cfDebug, cfLogLevel)
encoderConf := zapcore.EncoderConfig{
CallerKey: "caller_line",
LevelKey: "level_name",
Expand All @@ -55,24 +56,13 @@ func ZapLogger(cfDebug bool, cfLogLevel int) logr.Logger {
EncodeDuration: zapcore.SecondsDurationEncoder,
EncodeName: zapcore.FullNameEncoder,
}
core := zapcore.NewCore(
zapcore.NewConsoleEncoder(encoderConf),
zapcore.AddSync(zapcore.Lock(os.Stdout)),
zapcore.Level(-1*logLevel),
)
zapLogger := zap.New(core)
defer zapLogger.Sync()

opts := zapcr.Options{
Development: true,
Level: zap.NewAtomicLevelAt(zap.InfoLevel),
Encoder: zapcore.NewConsoleEncoder(encoderConf),
StacktraceLevel: zap.FatalLevel,
}
opts.BindFlags(flag.CommandLine)

// 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.
logLevel := getLogLevel(cfDebug, cfLogLevel)
opts.Level = zapcore.Level(-1 * logLevel)
opts.ZapOpts = append(opts.ZapOpts, zap.AddCaller(), zap.AddCallerSkip(0))
if logLevel > 0 {
opts.StacktraceLevel = zap.ErrorLevel
}

return zapcr.New(zapcr.UseFlagOptions(&opts))
return zapr.NewLogger(zapLogger)
}

0 comments on commit 2ec6f93

Please sign in to comment.