logrus/hooks/writer
tbunyk c88f8de1fe Add Bytes() method to Entry, and use it to avoid double type cast 2019-03-18 16:07:31 +02:00
..
README.md Add hook to send logs to custom writer #678 2019-03-15 13:09:11 +02:00
writer.go Add Bytes() method to Entry, and use it to avoid double type cast 2019-03-18 16:07:31 +02:00
writer_test.go Fix some test conditions 2019-03-15 13:19:10 +02:00

README.md

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:

package main

import (
	"io/ioutil"
	"os"

	log "github.com/sirupsen/logrus"
	"github.com/sirupsen/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")
}