GitHub - bshuster-repo/logrus-logstash-hook: :information_source: Logstash hook for logrus (original) (raw)
Logstash hook for logrus
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.