1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-09 17:37:12 +00:00
kyverno/cmd/cli/kubectl-kyverno/log/log.go

65 lines
1.3 KiB
Go
Raw Normal View History

package log
import (
"os"
"strconv"
"strings"
"github.com/go-logr/logr"
"github.com/kyverno/kyverno/pkg/logging"
"sigs.k8s.io/controller-runtime/pkg/log"
)
const loggerName = "kubectl-kyverno"
var defaultLogLevel = 2
var Log = logging.WithName(loggerName)
func Configure() error {
return configure(os.Args[1:]...)
}
func configure(args ...string) error {
logging.InitFlags(nil)
isVerboseBool, level, err := isVerbose(args...)
if err != nil {
return err
}
if isVerboseBool {
return logging.Setup(logging.TextFormat, logging.DefaultTime, level)
} else {
log.SetLogger(logr.Discard())
}
return nil
}
func isVerbose(args ...string) (bool, int, error) {
for i, arg := range args {
if arg == "-v" || arg == "--v" {
level := defaultLogLevel
if i+1 < len(args) {
levelStr := args[i+1]
levelInt, err := strconv.Atoi(levelStr)
if err != nil {
// Return an error if conversion fails
return false, 0, err
}
level = levelInt
}
return true, level, nil
} else if strings.HasPrefix(arg, "-v=") || strings.HasPrefix(arg, "--v=") {
levelStr := strings.TrimPrefix(arg, "-v=")
levelStr = strings.TrimPrefix(levelStr, "--v=")
level, err := strconv.Atoi(levelStr)
if err != nil {
// Return an error if conversion fails
return false, 0, err
}
return true, level, nil
}
}
return false, 0, nil
}