Categorygithub.com/keymantics/logrus_fluent
modulepackage
0.5.1
Repository: https://github.com/keymantics/logrus_fluent.git
Documentation: pkg.go.dev

# README

Fluentd Hook for Logrus :walrus:

GoDoc License: Apache 2.0 Release Travis Status wercker Status Coveralls Coverage Go Report Card Downloads

Usage

import (
	"github.com/sirupsen/logrus"
	"github.com/evalphobia/logrus_fluent"
)

func main() {
	hook, err := logrus_fluent.NewWithConfig(logrus_fluent.Config{
		Host: "localhost",
		Port: 24224,
	})
	if err != nil {
		panic(err)
	}

	// set custom fire level
	hook.SetLevels([]logrus.Level{
		logrus.PanicLevel,
		logrus.ErrorLevel,
	})

	// set static tag
	hook.SetTag("original.tag")

	// ignore field
	hook.AddIgnore("context")

	// filter func
	hook.AddFilter("error", logrus_fluent.FilterError)

	logrus.AddHook(hook)
}

func logging(ctx context.Context) {
	logrus.WithFields(logrus.Fields{
		"value":   "some content...",
		"error":   errors.New("unknown error"), // this field will be applied filter function in the hook.
		"context": ctx,                         // this field will be ignored in the hook.
	}).Error("error message")
}

Special fields

Some logrus fields have a special meaning in this hook.

  • tag is used as a fluentd tag. (if tag is omitted, Entry.Message is used as a fluentd tag, unless a static tag is set for the hook with hook.SetTag)

# Functions

ConvertToValue make map data from struct and tags.
FilterError is a filter function to convert error type to string type.
New returns initialized logrus hook for fluentd with persistent fluentd logger.
NewHook returns initialized logrus hook for fluentd.
NewWithConfig returns initialized logrus hook by config setting.

# Constants

MessageField is logrus field name used as message.
TagField is logrus field name used as fluentd tag.
TagName is struct field tag name.

# Structs

Config is settings for FluentHook.
FluentHook is logrus hook for fluentd.