@@ -73,6 +73,7 @@ type logFlags struct {
7373 file flags.LogFileFlag
7474 level flags.LogLevelFlag
7575 output flags.Output
76+ debug bool
7677}
7778
7879func (f * logFlags ) makeLogHandler (opts slog.HandlerOptions ) (slog.Handler , error ) {
@@ -95,6 +96,10 @@ func (f *logFlags) makeLogHandler(opts slog.HandlerOptions) (slog.Handler, error
9596}
9697
9798func (f * logFlags ) initializeContext (ctx context.Context ) (context.Context , error ) {
99+ if f .debug {
100+ f .level .Set ("debug" )
101+ }
102+
98103 opts := slog.HandlerOptions {}
99104 opts .Level = f .level .Level ()
100105 opts .AddSource = true
@@ -137,9 +142,17 @@ func initLogFlags(cmd *cobra.Command) *logFlags {
137142 f .output .Set (v )
138143 }
139144
140- cmd .PersistentFlags ().Var (& f .file , "log-file" , "file to write logs to" )
141- cmd .PersistentFlags ().Var (& f .level , "log-level" , "log level" )
142- cmd .PersistentFlags ().Var (& f .output , "log-format" , "log output format (text or json)" )
145+ flags := cmd .PersistentFlags ()
146+ flags .BoolVar (& f .debug , "debug" , false , "enable debug logging" )
147+ flags .Var (& f .file , "log-file" , "file to write logs to" )
148+ flags .Var (& f .level , "log-level" , "log level" )
149+ flags .Var (& f .output , "log-format" , "log output format (text or json)" )
150+
151+ // mark fine-grained flags hidden from global --help
152+ flags .MarkHidden ("log-file" )
153+ flags .MarkHidden ("log-level" )
154+ flags .MarkHidden ("log-format" )
155+
143156 cmd .RegisterFlagCompletionFunc ("log-file" , f .file .Complete )
144157 cmd .RegisterFlagCompletionFunc ("log-level" , f .level .Complete )
145158 cmd .RegisterFlagCompletionFunc ("log-format" , f .output .Complete )
0 commit comments