2023-09-06 02:06:44 +02:00
|
|
|
package log
|
|
|
|
|
2023-09-11 23:07:26 +02:00
|
|
|
import (
|
|
|
|
"os"
|
2024-05-15 19:27:17 +05:30
|
|
|
"strconv"
|
2023-09-11 23:07:26 +02:00
|
|
|
"strings"
|
|
|
|
|
2024-05-15 19:27:17 +05:30
|
|
|
"github.com/go-logr/logr"
|
2023-09-11 23:07:26 +02:00
|
|
|
"github.com/kyverno/kyverno/pkg/logging"
|
2024-05-15 19:27:17 +05:30
|
|
|
"sigs.k8s.io/controller-runtime/pkg/log"
|
2023-09-11 23:07:26 +02:00
|
|
|
)
|
2023-09-06 02:06:44 +02:00
|
|
|
|
|
|
|
const loggerName = "kubectl-kyverno"
|
|
|
|
|
2024-05-15 19:27:17 +05:30
|
|
|
var defaultLogLevel = 2
|
|
|
|
|
2023-09-06 02:06:44 +02:00
|
|
|
var Log = logging.WithName(loggerName)
|
|
|
|
|
|
|
|
func Configure() error {
|
2023-09-12 21:46:04 +02:00
|
|
|
return configure(os.Args[1:]...)
|
|
|
|
}
|
|
|
|
|
|
|
|
func configure(args ...string) error {
|
2023-09-06 02:06:44 +02:00
|
|
|
logging.InitFlags(nil)
|
2024-05-15 19:27:17 +05:30
|
|
|
|
|
|
|
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())
|
2023-09-12 21:46:04 +02:00
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
2024-05-15 19:27:17 +05:30
|
|
|
func isVerbose(args ...string) (bool, int, error) {
|
|
|
|
for i, arg := range args {
|
2023-09-11 23:07:26 +02:00
|
|
|
if arg == "-v" || arg == "--v" {
|
2024-05-15 19:27:17 +05:30
|
|
|
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
|
2023-09-11 23:07:26 +02:00
|
|
|
} else if strings.HasPrefix(arg, "-v=") || strings.HasPrefix(arg, "--v=") {
|
2024-05-15 19:27:17 +05:30
|
|
|
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
|
2023-09-11 23:07:26 +02:00
|
|
|
}
|
|
|
|
}
|
2024-05-15 19:27:17 +05:30
|
|
|
return false, 0, nil
|
2023-09-06 02:06:44 +02:00
|
|
|
}
|