slackrus

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 21, 2020 License: Apache-2.0 Imports: 3 Imported by: 0

README

slackrus

Slack hook for Logrus.

Use

package main

import (
	"os"

	"github.com/sirupsen/logrus"
	"github.com/yarlson/slackrus/v1"
)

func main() {

	logrus.SetFormatter(&logrus.JSONFormatter{})

	logrus.SetOutput(os.Stderr)

	logrus.SetLevel(logrus.DebugLevel)

	logrus.AddHook(slackrus.NewSlackrusHook(slackrus.SlackrusHookConfig{
		Token:          "12345",
		AcceptedLevels: slackrus.LevelThreshold(logrus.DebugLevel),
		Channel:        "#slack-testing",
		IconEmoji:      ":ghost:",
		Username:       "foobot",
	}))

	logrus.WithFields(logrus.Fields{"foo": "bar", "foo2": 42}).Warn("this is a warn level message")
	logrus.Info("this is an info level message")
	logrus.Debug("this is a debug level message")
}

Extra fields

You can also add some extra fields to be sent with every slack message

	extra := map[string]interface{}{
		"hostname": "nyc-server-1",
		"tag": "some-tag",
	}

Parameters

Required
  • Token
Optional
  • IconEmoji
  • IconURL
  • Username
  • Channel
  • Extra

Installation

go get -u github.com/yarlson/slackrus/v1

Credits

Based on Slackrus by johntdyer

Documentation

Overview

Package slackrus provides a Slack hook for the logrus loggin package.

Index

Constants

View Source
const (
	Version = "1.0.0"
)

Project version

Variables

Supported log levels

Functions

func LevelThreshold

func LevelThreshold(l logrus.Level) []logrus.Level

LevelThreshold - Returns every logging level above and including the given parameter.

Types

type SlackrusHook

type SlackrusHook struct {
	// contains filtered or unexported fields
}

SlackrusHook is a logrus Hook for dispatching messages to the specified channel on Slack.

func NewSlackrusHook

func NewSlackrusHook(config SlackrusHookConfig) *SlackrusHook

func (*SlackrusHook) Fire

func (sh *SlackrusHook) Fire(e *logrus.Entry) error

Fire - Sent event to slack

func (*SlackrusHook) Levels

func (sh *SlackrusHook) Levels() []logrus.Level

Levels sets which levels to sent to slack

type SlackrusHookConfig

type SlackrusHookConfig struct {
	// Messages with a log level not contained in this array
	// will not be dispatched. If nil, all messages will be dispatched.
	AcceptedLevels []logrus.Level
	Token          string
	IconURL        string
	Channel        string
	IconEmoji      string
	Username       string
	Extra          map[string]interface{}
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL