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 }