diff --git a/pkg/logs/logs.go b/pkg/logs/logs.go index 226f9c1b..9a70cd34 100644 --- a/pkg/logs/logs.go +++ b/pkg/logs/logs.go @@ -78,6 +78,7 @@ func AddFlags(fs *pflag.FlagSet) { if !visibleFlagNames.Has(f.Name) { tfs.MarkHidden(f.Name) } + // The default is "text" and the usage string includes details about how // JSON logging is only available when BETA logging features are // enabled, but that's not relevant here because the feature is enabled @@ -95,6 +96,17 @@ func AddFlags(fs *pflag.FlagSet) { f.DefValue = "true" runtime.Must(f.Value.Set("true")) } + + // Since `--v` (which is the long form of `-v`) isn't the standard in + // our projects (it only exists in cert-manager, webhook, and such), + // let's rename it to the more commong `--log-level`, which appears in + // openshift-routes, csi-driver, trust-manager, and approver-policy. + // More details at: + // https://github.com/jetstack/jetstack-secure/pull/596#issuecomment-2421708181 + if f.Name == "v" { + f.Name = "log-level" + f.Shorthand = "v" + } }) fs.AddFlagSet(&tfs) } diff --git a/pkg/logs/logs_test.go b/pkg/logs/logs_test.go index 5e7aba5d..e82e5660 100644 --- a/pkg/logs/logs_test.go +++ b/pkg/logs/logs_test.go @@ -77,8 +77,8 @@ pflag: help requested `, expectStderr: ` Usage of test-logs: + -v, --log-level Level number for the log level verbosity --logging-format string Sets the log format. Permitted formats: "json", "text". (default "json") - -v, --v Level number for the log level verbosity --vmodule pattern=N,... comma-separated list of pattern=N settings for file-filtered logging (only works for text log format) `, }, @@ -92,8 +92,23 @@ unknown flag: --foo expectStderr: ` unknown flag: --foo Usage of test-logs: + -v, --log-level Level number for the log level verbosity + --logging-format string Sets the log format. Permitted formats: "json", "text". (default "json") + --vmodule pattern=N,... comma-separated list of pattern=N settings for file-filtered logging (only works for text log format) +`, + }, + { + name: "v-long-form-not-available", + flags: "--v=3", + expectError: true, + expectStdout: ` +unknown flag: --v +`, + expectStderr: ` +unknown flag: --v +Usage of test-logs: + -v, --log-level Level number for the log level verbosity --logging-format string Sets the log format. Permitted formats: "json", "text". (default "json") - -v, --v Level number for the log level verbosity --vmodule pattern=N,... comma-separated list of pattern=N settings for file-filtered logging (only works for text log format) `, }, @@ -204,7 +219,7 @@ E0000 00:00:00.000000 00000 logs_test.go:000] "Contextual error" err="fake-err }, { name: "v-level-3", - flags: "--v=3", + flags: "-v=3", expectStdout: ` {"ts":0000000000000.000,"caller":"logs/logs.go:000","msg":"log Print","source":"vcert","v":0} {"ts":0000000000000.000,"caller":"logs/logs_test.go:000","msg":"slog Info","v":0} @@ -218,6 +233,23 @@ E0000 00:00:00.000000 00000 logs_test.go:000] "Contextual error" err="fake-err {"ts":0000000000000.000,"caller":"logs/logs_test.go:000","msg":"slog Error"} {"ts":0000000000000.000,"caller":"logs/logs_test.go:000","msg":"klog Error","err":"fake-error"} {"ts":0000000000000.000,"logger":"foo","caller":"logs/logs_test.go:000","msg":"Contextual error","key":"value","err":"fake-error"} +`, + }, + { + name: "v-level-long-form", + flags: "--log-level=0", + expectStdout: ` +{"ts":0000000000000.000,"caller":"logs/logs.go:000","msg":"log Print","source":"vcert","v":0} +{"ts":0000000000000.000,"caller":"logs/logs_test.go:000","msg":"slog Info","v":0} +{"ts":0000000000000.000,"caller":"logs/logs_test.go:000","msg":"slog Warn","v":0} +{"ts":0000000000000.000,"caller":"logs/logs_test.go:000","msg":"klog Info","v":0} +{"ts":0000000000000.000,"caller":"logs/logs_test.go:000","msg":"klog Warning","v":0} +{"ts":0000000000000.000,"caller":"logs/logs_test.go:000","msg":"klog InfoS","v":0,"key":"value"} +`, + expectStderr: ` +{"ts":0000000000000.000,"caller":"logs/logs_test.go:000","msg":"slog Error"} +{"ts":0000000000000.000,"caller":"logs/logs_test.go:000","msg":"klog Error","err":"fake-error"} +{"ts":0000000000000.000,"logger":"foo","caller":"logs/logs_test.go:000","msg":"Contextual error","key":"value","err":"fake-error"} `, }, {