INNER CODE UNIT · Go
addCommandsWithLogLevelOption
grafana/tanka · cmd/tk/main.go:92
func addCommandsWithLogLevelOption(rootCmd *cli.Command, cmds ...*cli.Command) {
for _, cmd := range cmds {
levels := []string{zerolog.Disabled.String(), zerolog.FatalLevel.String(), zerolog.ErrorLevel.String(), zerolog.WarnLevel.String(), zerolog.InfoLevel.String(), zerolog.DebugLevel.String(), zerolog.TraceLevel.String()}
cmd.Flags().String("log-level", zerolog.InfoLevel.String(), "possible values: "+strings.Join(levels, ", "))
cmdRun := cmd.Run
cmd.Run = func(cmd *cli.Command, args []string) error {
level, err := zerolog.ParseLevel(cmd.Flags().Lookup("log-level").Value.String())
if err != nil {
return err
}
zerolog.SetGlobalLevel(level)
return cmdRun(cmd, args)
}
rootCmd.AddCommand(cmd)
}
}