debian-forge-composer/pkg/splunk_logger/splunk_hook.go
Diaa Sami 43f43c84f6 pkg: Add logger package from image-builder into pkg folder
rename and adapt it to be usable by composer
2023-11-10 17:35:25 +01:00

44 lines
789 B
Go

package logger
import (
"fmt"
"os"
"github.com/sirupsen/logrus"
)
type SplunkHook struct {
sl *SplunkLogger
}
func NewSplunkHook(host, port, token, source string) (*SplunkHook, error) {
url := fmt.Sprintf("https://%s:%s/services/collector/event", host, port)
hostname, err := os.Hostname()
if err != nil {
return nil, err
}
return &SplunkHook{
sl: NewSplunkLogger(url, token, source, hostname),
}, nil
}
func (sh *SplunkHook) Fire(entry *logrus.Entry) error {
msg, err := entry.String()
if err != nil {
return err
}
return sh.sl.LogWithTime(entry.Time, msg)
}
func (sh *SplunkHook) Levels() []logrus.Level {
return []logrus.Level{
logrus.PanicLevel,
logrus.FatalLevel,
logrus.ErrorLevel,
logrus.WarnLevel,
logrus.InfoLevel,
logrus.DebugLevel,
}
}