// allLogLevelsAsStrings returns all logrus levels as a list of strings
funcallLogLevelsAsStrings()[]string{
varlevels[]string
for_,level:=rangelogrus.AllLevels{
levels=append(levels,level.String())
}
returnlevels
}
// ParseFlags adds and parses flags from command line
func(cfg*Config)ParseFlags(args[]string)error{
app:=kingpin.New("external-dns","ExternalDNS synchronizes exposed Kubernetes Services and Ingresses with DNS providers.\n\nNote that all flags may be replaced with env vars - `--flag` -> `EXTERNAL_DNS_FLAG=1` or `--flag value` -> `EXTERNAL_DNS_FLAG=value`")
app.Flag("log-format","The format in which log messages are printed (default: text, options: text, json)").Default(defaultConfig.LogFormat).EnumVar(&cfg.LogFormat,"text","json")
app.Flag("metrics-address","Specify where to serve the metrics and health check endpoint (default: :7979)").Default(defaultConfig.MetricsAddress).StringVar(&cfg.MetricsAddress)
app.Flag("debug","When enabled, increases the logging output for debugging purposes (default: disabled)").BoolVar(&cfg.Debug)
app.Flag("log-level","Set the level of logging. (default: info, options: panic, debug, info, warn, error, fatal").Default(defaultConfig.LogLevel).EnumVar(&cfg.LogLevel,allLogLevelsAsStrings()...)