evalphobia / logrus_kinesis

AWS Kinesis hooks for logrus

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

logrus_kinesis

Build Status Coverage Status codecov GoDoc

AWS Kinesis Hook for Logrus :walrus:

Usage

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

func main() {
    hook, err := logrus_kinesis.New("my_stream", Config{
        AccessKey: "ABC", // AWS accessKeyId
        SecretKey: "XYZ", // AWS secretAccessKey
        Region:    "ap-northeast-1",
    })

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

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

    // add custome filter
    hook.AddFilter("error", logrus_kinesis.FilterError)


    // send log with logrus
    logger := logrus.New()
    logger.Hooks.Add(hook)
    logger.WithFields(f).Error("my_message") // send log data to kinesis as JSON
}

Special fields

Some logrus fields have a special meaning in this hook.

message if message is not set, entry.Message is added to log data in "message" field.
stream_name stream_name is a custom stream name for Kinesis. If not set, defaultStreamName is used as stream name.
partition_key partition_key is a custom partition key for Kinesis. If not set, defaultStreamName or entry.Message is used as stream name.

About

AWS Kinesis hooks for logrus

License:MIT License


Languages

Language:Go 100.0%