1package writer 2 3import ( 4 "io" 5 6 log "github.com/sirupsen/logrus" 7) 8 9// Hook is a hook that writes logs of specified LogLevels to specified Writer 10type Hook struct { 11 Writer io.Writer 12 LogLevels []log.Level 13} 14 15// Fire will be called when some logging function is called with current hook 16// It will format log entry to string and write it to appropriate writer 17func (hook *Hook) Fire(entry *log.Entry) error { 18 line, err := entry.Bytes() 19 if err != nil { 20 return err 21 } 22 _, err = hook.Writer.Write(line) 23 return err 24} 25 26// Levels define on which log levels this hook would trigger 27func (hook *Hook) Levels() []log.Level { 28 return hook.LogLevels 29} 30