dislog

package module
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Dec 17, 2022 License: Apache-2.0 Imports: 11 Imported by: 5

README

Go Reference Go Report Go Version License Disgo Version Disgo Discord

dislog

dislog is a logrus logging hook sending logs over Discord Webhooks using the disgohook library

Getting Started

Installing
go get github.com/disgoorg/dislog
Usage

Import the package into your project.

import "github.com/disgoorg/dislog"

Create a new logrus logger then create a new dislog instance by providing the webhook id and webhook token.

logger := logrus.New()
dlog, err := dislog.New(
    // Sets which logging levels to send to the webhook
    dislog.WithLogLevels(dislog.TraceLevelAndAbove...),
    // Sets webhook id & token
    dislog.WithWebhookIDToken(webhookID, webhookToken),
)
if err != nil {
    logger.Fatal("error initializing dislog: ", err)
}
defer dlog.Close()
logger.AddHook(dlog)

Documentation

Documentation can be found here

  • Go Reference
  • logrus Hooks Documentation

Examples

You can find examples here

Troubleshooting

For help feel free to open an issue or reach out on Discord

Contributing

Contributions are welcomed but for bigger changes please first reach out via Discord or create an issue to discuss your intentions and ideas.

License

Distributed under the License. See LICENSE for more information.

Documentation

Index

Constants

View Source
const MaxEmbeds = 10

Variables

View Source
var (
	TimeFormatter = "2006-01-02 15:04:05 Z07"
	LogWait       = 2 * time.Second

	PanicLevelColor = 0xe300bd
	FatalLevelColor = 0xff0011
	ErrorLevelColor = 0xeb4034
	WarnLevelColor  = 0xff8c00
	InfoLevelColor  = 0xfcec00
	DebugLevelColor = 0x0095ff
	TraceLevelColor = 0xfffffe

	LevelColors = map[logrus.Level]*int{
		logrus.PanicLevel: &PanicLevelColor,
		logrus.FatalLevel: &FatalLevelColor,
		logrus.ErrorLevel: &ErrorLevelColor,
		logrus.WarnLevel:  &WarnLevelColor,
		logrus.InfoLevel:  &InfoLevelColor,
		logrus.DebugLevel: &DebugLevelColor,
		logrus.TraceLevel: &TraceLevelColor,
	}

	PanicLevelAndAbove = []logrus.Level{logrus.PanicLevel}
	FatalLevelAndAbove = []logrus.Level{logrus.PanicLevel, logrus.FatalLevel}
	ErrorLevelAndAbove = []logrus.Level{logrus.PanicLevel, logrus.FatalLevel, logrus.ErrorLevel}
	WarnLevelAndAbove  = []logrus.Level{logrus.PanicLevel, logrus.FatalLevel, logrus.ErrorLevel, logrus.WarnLevel}
	InfoLevelAndAbove  = []logrus.Level{logrus.PanicLevel, logrus.FatalLevel, logrus.ErrorLevel, logrus.WarnLevel, logrus.InfoLevel}
	DebugLevelAndAbove = []logrus.Level{logrus.PanicLevel, logrus.FatalLevel, logrus.ErrorLevel, logrus.WarnLevel, logrus.InfoLevel, logrus.DebugLevel}
	TraceLevelAndAbove = []logrus.Level{logrus.PanicLevel, logrus.FatalLevel, logrus.ErrorLevel, logrus.WarnLevel, logrus.InfoLevel, logrus.DebugLevel, logrus.TraceLevel}
)

Functions

This section is empty.

Types

type Config

type Config struct {
	Logger    log.Logger
	LogLevels []logrus.Level

	WebhookID     snowflake.ID
	WebhookToken  string
	WebhookClient webhook.Client
}

func DefaultConfig

func DefaultConfig() *Config

func (*Config) Apply

func (c *Config) Apply(opts []ConfigOpt)

type ConfigOpt

type ConfigOpt func(config *Config)

func WithLogLevels

func WithLogLevels(levels ...logrus.Level) ConfigOpt

func WithLogger

func WithLogger(logger log.Logger) ConfigOpt

func WithWebhookClient

func WithWebhookClient(webhookClient webhook.Client) ConfigOpt

func WithWebhookIDToken

func WithWebhookIDToken(webhookID snowflake.ID, webhookToken string) ConfigOpt

type DisLog

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

func New

func New(opts ...ConfigOpt) (*DisLog, error)

func (*DisLog) Close

func (l *DisLog) Close(ctx context.Context)

func (*DisLog) Fire

func (l *DisLog) Fire(entry *logrus.Entry) error

func (*DisLog) Levels

func (l *DisLog) Levels() []logrus.Level

Directories

Path Synopsis
_examples

Jump to

Keyboard shortcuts

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