gitlab.com/jfprevost/gitlab-runner-notlscheck@v11.11.4+incompatible/helpers/fatal_panic.go (about)

     1  package helpers
     2  
     3  import (
     4  	"fmt"
     5  	"io"
     6  
     7  	"github.com/sirupsen/logrus"
     8  )
     9  
    10  type fatalLogHook struct {
    11  	output io.Writer
    12  }
    13  
    14  func (s *fatalLogHook) Levels() []logrus.Level {
    15  	return []logrus.Level{
    16  		logrus.FatalLevel,
    17  	}
    18  }
    19  
    20  func (s *fatalLogHook) Fire(e *logrus.Entry) error {
    21  	fmt.Fprint(s.output, e.Message)
    22  
    23  	panic(e)
    24  }
    25  
    26  func MakeFatalToPanic() func() {
    27  	logger := logrus.StandardLogger()
    28  	hooks := make(logrus.LevelHooks)
    29  
    30  	hooks.Add(&fatalLogHook{output: logger.Out})
    31  	oldHooks := logger.ReplaceHooks(hooks)
    32  
    33  	return func() {
    34  		logger.ReplaceHooks(oldHooks)
    35  	}
    36  }