github.com/consensys/gnark@v0.11.0/logger/logger.go (about)

     1  // Package logger provides a configurable logger across gnark components
     2  //
     3  // The root logger defined by default uses github.com/rs/zerolog with a console writer
     4  package logger
     5  
     6  import (
     7  	"io"
     8  	"os"
     9  	"strings"
    10  
    11  	"github.com/consensys/gnark/debug"
    12  	"github.com/rs/zerolog"
    13  )
    14  
    15  var logger zerolog.Logger
    16  
    17  func init() {
    18  	output := zerolog.ConsoleWriter{Out: os.Stdout, TimeFormat: "15:04:05"}
    19  	logger = zerolog.New(output).With().Timestamp().Logger()
    20  
    21  	if !debug.Debug && strings.HasSuffix(os.Args[0], ".test") {
    22  		logger = zerolog.Nop()
    23  	}
    24  
    25  }
    26  
    27  // SetOutput changes the output of the global logger
    28  func SetOutput(w io.Writer) {
    29  	logger = logger.Output(w)
    30  }
    31  
    32  // Set allow a gnark user to overhide the global logger
    33  func Set(l zerolog.Logger) {
    34  	logger = l
    35  }
    36  
    37  // Disable disables logging
    38  func Disable() {
    39  	logger = zerolog.Nop()
    40  }
    41  
    42  // Logger returns a sublogger for a component
    43  func Logger() zerolog.Logger {
    44  	return logger
    45  }