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