package log import ( "io" "regexp" ) const redactedText = "" var ( logger = NewFmtMachineLogger() // (?s) enables '.' to match '\n' -- see https://golang.org/pkg/regexp/syntax/ certRegex = regexp.MustCompile("(?s)-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----") keyRegex = regexp.MustCompile("(?s)-----BEGIN RSA PRIVATE KEY-----.*-----END RSA PRIVATE KEY-----") ) func stripSecrets(original []string) []string { stripped := []string{} for _, line := range original { line = certRegex.ReplaceAllString(line, redactedText) line = keyRegex.ReplaceAllString(line, redactedText) stripped = append(stripped, line) } return stripped } func Debug(args ...interface{}) { logger.Debug(args...) } func Debugf(fmtString string, args ...interface{}) { logger.Debugf(fmtString, args...) } func Error(args ...interface{}) { logger.Error(args...) } func Errorf(fmtString string, args ...interface{}) { logger.Errorf(fmtString, args...) } func Info(args ...interface{}) { logger.Info(args...) } func Infof(fmtString string, args ...interface{}) { logger.Infof(fmtString, args...) } func Warn(args ...interface{}) { logger.Warn(args...) } func Warnf(fmtString string, args ...interface{}) { logger.Warnf(fmtString, args...) } func SetDebug(debug bool) { logger.SetDebug(debug) } func SetOutWriter(out io.Writer) { logger.SetOutWriter(out) } func SetErrWriter(err io.Writer) { logger.SetErrWriter(err) } func History() []string { return stripSecrets(logger.History()) }