Logrus GELF Log Formatter
Logrus Only a formatter, outputs the log message in the GELF JSON format as decribed by Graylog 2.
If you are looking for a GELF hook capable of sending directly to graylog, please use this: https://github.com/gemnasium/logrus-graylog-hook
The reason for using just a formatter is that you can write files or directly to stdout in the expected format and then separately ship the lines to graylog, without stealing CPU time from your go app.
Installation
To install formatter, use go get
:
$ go get github.com/seatgeek/logrus-gelf-formatter
Usage
Here is how it should be used:
package main
import (
"github.com/sirupsen/logrus"
gelf "github.com/seatgeek/logrus-gelf-formatter"
)
var log = logrus.New()
func init() {
log.Formatter = new(gelf.GelfFormatter)
log.Level = logrus.DebugLevel
}
func main() {
log.WithFields(logrus.Fields{
"prefix": "main",
"animal": "walrus",
"number": 8,
}).Debug("Started observing beach")
log.WithFields(logrus.Fields{
"prefix": "sensor",
"temperature": -4,
}).Info("Temperature changes")
}