GitHub - bshuster-repo/logrus-logstash-hook: :information_source: Logstash hook for logrus (original) (raw)

Logstash hook for logrus :walrus:

Build Status Go Report Status

Use this hook to send the logs to Logstash.

Usage

package main

import ( "github.com/bshuster-repo/logrus-logstash-hook" "github.com/sirupsen/logrus" "net" )

func main() { log := logrus.New() conn, err := net.Dial("tcp", "logstash.mycompany.net:8911") if err != nil { log.Fatal(err) } hook := logrustash.New(conn, logrustash.DefaultFormatter(logrus.Fields{"type": "myappName"}))

    log.Hooks.Add(hook)
    ctx := log.WithFields(logrus.Fields{
            "method": "main",
    })
    ctx.Info("Hello World!")

}

This is how it will look like:

{ "@timestamp" => "2016-02-29T16:57:23.000Z", "@version" => "1", "level" => "info", "message" => "Hello World!", "method" => "main", "host" => "172.17.0.1", "port" => 45199, "type" => "myappName" }

FAQ

Q: I would like to add characters to each line before sending to Logstash? A: Logrustash gives you the ability to mutate the message before sending it to Logstash. Just follow this example.

Q: Is there a way to maintain the connection when it drops A: It's recommended to use GoAutoSocket for that. See here how it can be done.

Maintainers

Name Github
Boaz Shuster boaz0

License

MIT.