mirror of
https://github.com/aptible/supercronic.git
synced 2025-12-24 12:12:27 +08:00
* fix: random waitid error fix https://github.com/aptible/supercronic/issues/171 * fix(reap): forward signal * refactor: modify reaper to get supercronic exitStatus * fix(reaper): unify signal list & fix signal forward * chore: replace ioutil to io * fix(test): ci timeout * opt-out with no-reap flag Co-authored-by: Josh Raker <48493233+joshraker@users.noreply.github.com> * fix: typo on signal * fix: args pass to supercronic * fix(test): remove removed flag * chore: remove misleading comment --------- Co-authored-by: Josh Raker <48493233+joshraker@users.noreply.github.com>
48 lines
822 B
Go
48 lines
822 B
Go
package hook
|
|
|
|
import (
|
|
"io"
|
|
|
|
"github.com/sirupsen/logrus"
|
|
)
|
|
|
|
type writerHook struct {
|
|
writer io.Writer
|
|
levels []logrus.Level
|
|
}
|
|
|
|
func (h *writerHook) Levels() []logrus.Level {
|
|
return h.levels
|
|
}
|
|
|
|
func (h *writerHook) Fire(entry *logrus.Entry) error {
|
|
serialized, err := entry.Logger.Formatter.Format(entry)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
_, err = h.writer.Write(serialized)
|
|
return err
|
|
}
|
|
|
|
func RegisterSplitLogger(logger *logrus.Logger, outWriter io.Writer, errWriter io.Writer) {
|
|
logger.SetOutput(io.Discard)
|
|
|
|
logger.AddHook(&writerHook{
|
|
writer: outWriter,
|
|
levels: []logrus.Level{
|
|
logrus.DebugLevel,
|
|
logrus.InfoLevel,
|
|
},
|
|
})
|
|
|
|
logger.AddHook(&writerHook{
|
|
writer: errWriter,
|
|
levels: []logrus.Level{
|
|
logrus.WarnLevel,
|
|
logrus.ErrorLevel,
|
|
logrus.FatalLevel,
|
|
logrus.PanicLevel,
|
|
},
|
|
})
|
|
}
|