github.com/goreleaser/goreleaser@v1.25.1/internal/logext/writer.go (about) 1 package logext 2 3 import ( 4 "io" 5 "os" 6 7 "github.com/caarlos0/log" 8 ) 9 10 // NewWriter creates a new log writer. 11 func NewWriter() io.Writer { 12 return NewConditionalWriter(false) 13 } 14 15 // NewConditionalWriter creates a new log writer that only writes when the given condition is met or debug is enabled. 16 func NewConditionalWriter(condition bool) io.Writer { 17 if condition || isDebug() { 18 logger, ok := log.Log.(*log.Logger) 19 if !ok { 20 return os.Stderr 21 } 22 return logger.Writer 23 } 24 return io.Discard 25 } 26 27 func isDebug() bool { 28 return logLevel() == log.DebugLevel 29 } 30 31 func logLevel() log.Level { 32 if logger, ok := log.Log.(*log.Logger); ok { 33 return logger.Level 34 } 35 return log.InfoLevel 36 }