diff --git a/core/commoncmd/daemon_log.go b/core/commoncmd/daemon_log.go index 13337407d..97fffed5b 100644 --- a/core/commoncmd/daemon_log.go +++ b/core/commoncmd/daemon_log.go @@ -30,6 +30,8 @@ func NewCmdDaemonLog() *cobra.Command { flags := cmd.Flags() FlagNodeSelector(flags, &options.NodeSelector) FlagDaemonLogLevel(flags, &options.Level) + _ = cmd.MarkFlagRequired("level") + return cmd } diff --git a/core/commoncmd/flags.go b/core/commoncmd/flags.go index ed6adf083..5c162c592 100644 --- a/core/commoncmd/flags.go +++ b/core/commoncmd/flags.go @@ -121,7 +121,7 @@ func FlagDaemonListenerName(flags *pflag.FlagSet, p *string) { } func FlagDaemonLogLevel(flags *pflag.FlagSet, p *string) { - flags.StringVar(p, "level", "", "trace, debug, info, warn, error, fatal, panic") + flags.StringVar(p, "level", "", "trace, debug, info, warn, error, fatal, panic, none") } func FlagDepth(flags *pflag.FlagSet, p *int) { diff --git a/daemon/daemonapi/post_daemon_log_control.go b/daemon/daemonapi/post_daemon_log_control.go index 99d306333..3207d32e2 100644 --- a/daemon/daemonapi/post_daemon_log_control.go +++ b/daemon/daemonapi/post_daemon_log_control.go @@ -29,8 +29,13 @@ func (a *DaemonAPI) PostDaemonLogControl(ctx echo.Context, nodename string) erro func (a *DaemonAPI) postLocalDaemonLogControl(ctx echo.Context, payload api.LogControl) error { var level string - if payload.Level != "none" { - level = string(payload.Level) + switch payload.Level { + case "": + return JSONProblemf(ctx, http.StatusBadRequest, "Invalid body", "missing 'level' field") + case "none": + // NoLevel + default: + level = payload.Level } newLevel, err := zerolog.ParseLevel(level) if err != nil {