slclogger

package module
v2.0.4 Latest Latest
Warning

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

Go to latest
Published: Mar 14, 2019 License: MIT Imports: 9 Imported by: 0

README

SlcLogger

Build Status

Simple and Human Friendly Slack Client for Logging/Notification written in Go

Install

go get "github.com/iktakahiro/slclogger/v2"

How to Use

Basic Usage
package main

import (
	"errors"

	"github.com/iktakahiro/slclogger/v2"
)

func something() error {
	return errors.New("an error has occurred")
}

func main() {

	logger, _ := slclogger.NewSlcLogger(&slclogger.LoggerParams{
		WebHookURL: "https://hooks.slack.com/services/YOUR_WEBHOOK_URL",
	})

	if err := something(); err != nil {
		logger.Error(err, "Error Notification")
	}
}

When you execute the above sample code, your Slack channel will receive the message.

Log Levels

The default log level is Info. You can set it when initializing a SlcLogger struct.

package main

import (
	"github.com/iktakahiro/slclogger/v2"
)

func main() {
    logger, _ := slclogger.NewSlcLogger(&slclogger.LoggerParams{
        WebHookURL: "https://hooks.slack.com/services/YOUR_WEBHOOK_URL",
        LogLevel: slclogger.LevelDebug,
    })

    logger.Debug("Debug Message")
    logger.Info("Info Message")
    logger.Warn("Warn Message")
    logger.Error("Error Message")
}

You can also change the level at any time.

package main

import (
	"github.com/iktakahiro/slclogger/v2"
)

func main() {
	logger, _ := slclogger.NewSlcLogger(&slclogger.LoggerParams{
		WebHookURL: "https://hooks.slack.com/services/YOUR_WEBHOOK_URL",
	})

    logger.SetLogLevel(slclogger.LevelWarn)

    // The following notification will be ignored.
    logger.Debug("Debug Message")
}
Configure Options

All options are shown below.

package main

import (
	"github.com/iktakahiro/slclogger/v2"
)

func main() {

    logger, err := slclogger.NewSlcLogger(&slclogger.LoggerParams{
        WebHookURL:         "https://hooks.slack.com/services/YOUR_WEBHOOK_URL",
        DefaultTitle:       "Default Title",
        DefaultChannel:     "general",
        DebugChannel:       "debug-channel",
        InfoChannel:        "info-channel",
        WarnChannel :       "warn-channel",
        ErrorChannel :      "error-channel",
        LogLevel:           slclogger.LevelWarn,
        IconURL:            "https://example.com",
        UserName:           "My Logger",
    })
}
Param Default Value
WebHookURL (require) --
DefaultTitle "Notification"
DefaultChannel "" (When this param is omitted, the default channel of specified WebHook is used.)
DebugChannel "" (When this param is omitted, the value of DefaultChannel is used.)
InfoChannel "" (When this param is omitted, the value of DefaultChannel is used.)
WarnChannel "" (When this param is omitted, the value of DefaultChannel is used.)
ErrorChannel "" (When this param is omitted, the value of DefaultChannel is used.)
LogLevel Info
IconURL ""
UseName ""

Error Handling

If you want to handle errors, use SlcErr.

if err := logger.Info("info message"); err != nil {
    if slcErr, ok := err.(*slclogger.SlcErr); ok {
        fmt.Println(slcErr)
        fmt.Println(slcErr.Code)
    }
}

Test

make test

Documents

Documentation

Index

Constants

View Source
const (
	LevelDebug logLevel = iota + 1
	LevelInfo
	LevelWarn
	LevelError
)

LogLevel Constants

Variables

This section is empty.

Functions

This section is empty.

Types

type LoggerParams

type LoggerParams struct {
	WebHookURL     string
	LogLevel       logLevel
	DefaultChannel string
	DebugChannel   string
	InfoChannel    string
	WarnChannel    string
	ErrorChannel   string
	UserName       string
	DefaultTitle   string
	IconURL        string
}

LoggerParams is the set of parameters that can be used when creating a new SlcLogger.

type SlcErr

type SlcErr struct {
	Err  error
	Code int
}

SlcErr is a struct for Slack response error code.

func (*SlcErr) Error

func (s *SlcErr) Error() string

Error is an implementation of the error interface.

type SlcLogger

type SlcLogger struct {
	WebHookURL string
	LoggerParams
	LogLevel     logLevel
	DebugChannel string
	InfoChannel  string
	WarnChannel  string
	ErrorChannel string
	UserName     string
	DefaultTitle string
	IconURL      string
}

SlcLogger is the structure detailing logger.

func NewSlcLogger

func NewSlcLogger(params *LoggerParams) (*SlcLogger, error)

NewSlcLogger returns a new SLcLogger.

func (*SlcLogger) Debug

func (s *SlcLogger) Debug(message interface{}, title ...string) error

Debug is a wrapper function of sendNotification function that implicitly sets the logLevel and color.

func (*SlcLogger) Error

func (s *SlcLogger) Error(message interface{}, title ...string) error

Error is a wrapper function of sendNotification function that implicitly sets the logLevel and color.

func (*SlcLogger) Info

func (s *SlcLogger) Info(message interface{}, title ...string) error

Info is a wrapper function of sendNotification function that implicitly sets the logLevel and color.

func (*SlcLogger) SetLogLevel

func (s *SlcLogger) SetLogLevel(level logLevel)

SetLogLevel sets a logLevel to SlcLogger.LogLevel.

func (*SlcLogger) Warn

func (s *SlcLogger) Warn(message interface{}, title ...string) error

Warn is a wrapper function of sendNotification function that implicitly sets the logLevel and color.

Jump to

Keyboard shortcuts

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