forked from mirror/logrus
44 lines
888 B
Markdown
44 lines
888 B
Markdown
# Writer Hooks for Logrus
|
|
|
|
Send logs of given levels to any object with `io.Writer` interface.
|
|
|
|
## Usage
|
|
|
|
If you want for example send high level logs to `Stderr` and
|
|
logs of normal execution to `Stdout`, you could do it like this:
|
|
|
|
```go
|
|
package main
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os"
|
|
|
|
log "git.internal/re/logrus"
|
|
"git.internal/re/logrus/hooks/writer"
|
|
)
|
|
|
|
func main() {
|
|
log.SetOutput(ioutil.Discard) // Send all logs to nowhere by default
|
|
|
|
log.AddHook(&writer.Hook{ // Send logs with level higher than warning to stderr
|
|
Writer: os.Stderr,
|
|
LogLevels: []log.Level{
|
|
log.PanicLevel,
|
|
log.FatalLevel,
|
|
log.ErrorLevel,
|
|
log.WarnLevel,
|
|
},
|
|
})
|
|
log.AddHook(&writer.Hook{ // Send info and debug logs to stdout
|
|
Writer: os.Stdout,
|
|
LogLevels: []log.Level{
|
|
log.InfoLevel,
|
|
log.DebugLevel,
|
|
},
|
|
})
|
|
log.Info("This will go to stdout")
|
|
log.Warn("This will go to stderr")
|
|
}
|
|
```
|