From 8d010be19ee3e28577e4d986a0f8d4f93f84676e Mon Sep 17 00:00:00 2001 From: Serge Smertin Date: Tue, 7 Nov 2023 23:21:40 +0100 Subject: [PATCH 1/2] Added `--debug` global flag and hidden `--log-file`, `--log-level` and `--log-format` This PR exposes simpler interfaces to end users. --- cmd/root/logger.go | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/cmd/root/logger.go b/cmd/root/logger.go index dca07ca4be2..b9322133d19 100644 --- a/cmd/root/logger.go +++ b/cmd/root/logger.go @@ -72,6 +72,7 @@ type logFlags struct { file flags.LogFileFlag level flags.LogLevelFlag output flags.Output + debug bool } func (f *logFlags) makeLogHandler(opts slog.HandlerOptions) (slog.Handler, error) { @@ -94,6 +95,10 @@ func (f *logFlags) makeLogHandler(opts slog.HandlerOptions) (slog.Handler, error } func (f *logFlags) initializeContext(ctx context.Context) (context.Context, error) { + if f.debug { + f.level.Set("debug") + } + opts := slog.HandlerOptions{} opts.Level = f.level.Level() opts.AddSource = true @@ -136,9 +141,17 @@ func initLogFlags(cmd *cobra.Command) *logFlags { f.output.Set(v) } - cmd.PersistentFlags().Var(&f.file, "log-file", "file to write logs to") - cmd.PersistentFlags().Var(&f.level, "log-level", "log level") - cmd.PersistentFlags().Var(&f.output, "log-format", "log output format (text or json)") + flags := cmd.PersistentFlags() + flags.BoolVar(&f.debug, "debug", false, "enable debug logging. Equivalent to `--log-level debug`") + flags.Var(&f.file, "log-file", "file to write logs to") + flags.Var(&f.level, "log-level", "log level") + flags.Var(&f.output, "log-format", "log output format (text or json)") + + // mark fine-grained flags hidden from global --help + flags.MarkHidden("log-file") + flags.MarkHidden("log-level") + flags.MarkHidden("log-format") + cmd.RegisterFlagCompletionFunc("log-file", f.file.Complete) cmd.RegisterFlagCompletionFunc("log-level", f.level.Complete) cmd.RegisterFlagCompletionFunc("log-format", f.output.Complete) From da32574362053ecdea42f4774381d1faf614a8f6 Mon Sep 17 00:00:00 2001 From: Serge Smertin <259697+nfx@users.noreply.github.com> Date: Wed, 8 Nov 2023 17:46:47 +0100 Subject: [PATCH 2/2] Update cmd/root/logger.go --- cmd/root/logger.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/root/logger.go b/cmd/root/logger.go index b9322133d19..492f589fa2c 100644 --- a/cmd/root/logger.go +++ b/cmd/root/logger.go @@ -142,7 +142,7 @@ func initLogFlags(cmd *cobra.Command) *logFlags { } flags := cmd.PersistentFlags() - flags.BoolVar(&f.debug, "debug", false, "enable debug logging. Equivalent to `--log-level debug`") + flags.BoolVar(&f.debug, "debug", false, "enable debug logging") flags.Var(&f.file, "log-file", "file to write logs to") flags.Var(&f.level, "log-level", "log level") flags.Var(&f.output, "log-format", "log output format (text or json)")