/logrus-gelf-formatter

Formats logrus messages in the GELF JSON format

Primary LanguageGoBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

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")
}