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  }