Skip to content

bshuster-repo/logrus-logstash-hook

Repository files navigation

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.