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 37 38
|
//go:build linux
package logger
import (
"log/syslog"
"github.com/sirupsen/logrus"
lSyslog "github.com/sirupsen/logrus/hooks/syslog"
)
type syslogHandler struct {
handler logrus.Hook
}
func (h syslogHandler) Fire(entry *logrus.Entry) error {
return h.handler.Fire(entry)
}
func (h syslogHandler) Levels() []logrus.Level {
return []logrus.Level{
logrus.PanicLevel,
logrus.FatalLevel,
logrus.ErrorLevel,
logrus.WarnLevel,
logrus.InfoLevel,
}
}
func setupSyslog(logger *logrus.Logger, syslogName string) error {
syslogHook, err := lSyslog.NewSyslogHook("", "", syslog.LOG_INFO, syslogName)
if err != nil {
return err
}
logger.AddHook(syslogHandler{syslogHook})
return nil
}
|