Categorygithub.com/bigcr/logrus-logstash-hook
modulepackage
0.0.0-20170823094244-2e2a0b59c83e
Repository: https://github.com/bigcr/logrus-logstash-hook.git
Documentation: pkg.go.dev

# README

Logstash hook for logrus :walrus:

Build Status Go Report Status

Use this hook to send the logs to Logstash.

Usage

package main

import (
        "log"

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

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

        if err != nil {
                log.Fatal(err)
        }
        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"
}

Maintainers

NameGithubTwitter
Boaz Shusterripcurld0@ripcurld0

License

MIT.

# Functions

DefaultFormatter returns a default Logstash formatter: A JSON format with "@version" set to "1" (unless set differently in `fields`, "type" to "log" (unless set differently in `fields`), "@timestamp" to the log time and "message" to the log message.
New returns a new logrus.Hook for Logstash.

# Structs

Hook represents a Logstash hook.
LogstashFormatter represents a Logstash format.