Improve ipvs input error strings and logging (#6530)
This commit is contained in:
35
plugins/common/logrus/hook.go
Normal file
35
plugins/common/logrus/hook.go
Normal file
@@ -0,0 +1,35 @@
|
||||
package logrus
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
var once sync.Once
|
||||
|
||||
type LogHook struct {
|
||||
}
|
||||
|
||||
// Install a logging hook into the logrus standard logger, diverting all logs
|
||||
// through the Telegraf logger at debug level. This is useful for libraries
|
||||
// that directly log to the logrus system without providing an override method.
|
||||
func InstallHook() {
|
||||
once.Do(func() {
|
||||
logrus.SetOutput(ioutil.Discard)
|
||||
logrus.AddHook(&LogHook{})
|
||||
})
|
||||
}
|
||||
|
||||
func (h *LogHook) Fire(entry *logrus.Entry) error {
|
||||
msg := strings.ReplaceAll(entry.Message, "\n", " ")
|
||||
log.Print("D! [logrus] ", msg)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (h *LogHook) Levels() []logrus.Level {
|
||||
return logrus.AllLevels
|
||||
}
|
||||
Reference in New Issue
Block a user