From 96eab1202717e073782ec399a4e0820cae15b1bb Mon Sep 17 00:00:00 2001 From: Christopher Speller Date: Thu, 17 Aug 2017 17:19:06 -0700 Subject: Updating server dependancies. (#7246) --- vendor/github.com/prometheus/common/log/log.go | 73 ++++++++-------------- .../github.com/prometheus/common/log/log_test.go | 2 +- 2 files changed, 26 insertions(+), 49 deletions(-) (limited to 'vendor/github.com/prometheus') diff --git a/vendor/github.com/prometheus/common/log/log.go b/vendor/github.com/prometheus/common/log/log.go index 1321741ad..04e906c07 100644 --- a/vendor/github.com/prometheus/common/log/log.go +++ b/vendor/github.com/prometheus/common/log/log.go @@ -14,7 +14,6 @@ package log import ( - "flag" "fmt" "io" "io/ioutil" @@ -26,25 +25,9 @@ import ( "strings" "github.com/sirupsen/logrus" + "gopkg.in/alecthomas/kingpin.v2" ) -type levelFlag string - -// String implements flag.Value. -func (f levelFlag) String() string { - return fmt.Sprintf("%q", origLogger.Level.String()) -} - -// Set implements flag.Value. -func (f levelFlag) Set(level string) error { - l, err := logrus.ParseLevel(level) - if err != nil { - return err - } - origLogger.Level = l - return nil -} - // setSyslogFormatter is nil if the target architecture does not support syslog. var setSyslogFormatter func(logger, string, string) error @@ -55,38 +38,32 @@ func setJSONFormatter() { origLogger.Formatter = &logrus.JSONFormatter{} } -type logFormatFlag url.URL - -// String implements flag.Value. -func (f logFormatFlag) String() string { - u := url.URL(f) - return fmt.Sprintf("%q", u.String()) -} - -// Set implements flag.Value. -func (f logFormatFlag) Set(format string) error { - return baseLogger.SetFormat(format) -} - -func init() { - AddFlags(flag.CommandLine) +type loggerSettings struct { + level string + format string } -// AddFlags adds the flags used by this package to the given FlagSet. That's -// useful if working with a custom FlagSet. The init function of this package -// adds the flags to flag.CommandLine anyway. Thus, it's usually enough to call -// flag.Parse() to make the logging flags take effect. -func AddFlags(fs *flag.FlagSet) { - fs.Var( - levelFlag(origLogger.Level.String()), - "log.level", - "Only log messages with the given severity or above. Valid levels: [debug, info, warn, error, fatal]", - ) - fs.Var( - logFormatFlag(url.URL{Scheme: "logger", Opaque: "stderr"}), - "log.format", - `Set the log target and format. Example: "logger:syslog?appname=bob&local=7" or "logger:stdout?json=true"`, - ) +func (s *loggerSettings) apply(ctx *kingpin.ParseContext) error { + err := baseLogger.SetLevel(s.level) + if err != nil { + return err + } + err = baseLogger.SetFormat(s.format) + return err +} + +// AddFlags adds the flags used by this package to the Kingpin application. +// To use the default Kingpin application, call AddFlags(kingpin.CommandLine) +func AddFlags(a *kingpin.Application) { + s := loggerSettings{} + kingpin.Flag("log.level", "Only log messages with the given severity or above. Valid levels: [debug, info, warn, error, fatal]"). + Default(origLogger.Level.String()). + StringVar(&s.level) + defaultFormat := url.URL{Scheme: "logger", Opaque: "stderr"} + kingpin.Flag("log.format", `Set the log target and format. Example: "logger:syslog?appname=bob&local=7" or "logger:stdout?json=true"`). + Default(defaultFormat.String()). + StringVar(&s.format) + a.Action(s.apply) } // Logger is the interface for loggers used in the Prometheus components. diff --git a/vendor/github.com/prometheus/common/log/log_test.go b/vendor/github.com/prometheus/common/log/log_test.go index 2cd2b18e2..f63b4417f 100644 --- a/vendor/github.com/prometheus/common/log/log_test.go +++ b/vendor/github.com/prometheus/common/log/log_test.go @@ -32,7 +32,7 @@ func TestFileLineLogging(t *testing.T) { Debug("This debug-level line should not show up in the output.") Infof("This %s-level line should show up in the output.", "info") - re := `^time=".*" level=info msg="This info-level line should show up in the output." source="log_test.go:33" \n$` + re := `^time=".*" level=info msg="This info-level line should show up in the output." source="log_test.go:33"\n$` if !regexp.MustCompile(re).Match(buf.Bytes()) { t.Fatalf("%q did not match expected regex %q", buf.String(), re) } -- cgit v1.2.3-1-g7c22