github.com/weaveworks/common@v0.0.0-20230728070032-dd9e68f319d5/logging/logging.go (about) 1 package logging 2 3 import ( 4 "fmt" 5 "os" 6 7 "github.com/sirupsen/logrus" 8 9 "github.com/weaveworks/promrus" 10 ) 11 12 // Setup configures a global logrus logger to output to stderr. 13 // It populates the standard logrus logger as well as the global logging instance. 14 func Setup(logLevel string) error { 15 level, err := logrus.ParseLevel(logLevel) 16 if err != nil { 17 return fmt.Errorf("error parsing log level: %v", err) 18 } 19 hook, err := promrus.NewPrometheusHook() // Expose number of log messages as Prometheus metrics. 20 if err != nil { 21 return err 22 } 23 logrus.SetOutput(os.Stderr) 24 logrus.SetLevel(level) 25 logrus.AddHook(hook) 26 SetGlobal(Logrus(logrus.StandardLogger())) 27 return nil 28 }