1
0
Fork 0
mirror of https://github.com/eosswedenorg/thalos synced 2026-06-16 04:24:56 +02:00
thalos/app/log/HookWriter.go

48 lines
767 B
Go

package log
import (
"io"
log "github.com/sirupsen/logrus"
)
type HookWriter struct {
Writer io.Writer
LogLevels []log.Level
}
func (hook *HookWriter) Fire(entry *log.Entry) error {
line, err := entry.String()
if err != nil {
return err
}
_, err = hook.Writer.Write([]byte(line))
return err
}
func (hook *HookWriter) Levels() []log.Level {
return hook.LogLevels
}
func MakeStdHook(writer io.Writer) *HookWriter {
return &HookWriter{
Writer: writer,
LogLevels: []log.Level{
log.InfoLevel,
log.DebugLevel,
},
}
}
func MakeErrorHook(writer io.Writer) *HookWriter {
return &HookWriter{
Writer: writer,
LogLevels: []log.Level{
log.ErrorLevel,
log.WarnLevel,
log.FatalLevel,
log.PanicLevel,
log.TraceLevel,
},
}
}