GitHunt
MD

mdigger/graylog

Support for logging to the Graylog server in golang (slog handler)

graylog logger

Package graylog provides support for logging to the Graylog server.

It can send messages to the Graylog server using UDP or TCP.
When using UDP as a transport layer, the messages sent are gzip compressed
and automatically chunked.

import (
	"time"
	"github.com/mdigger/graylog"
	"golang.org/x/exp/slog"
)

func main() {
    // init graylog logger
    log, err := graylog.Dial("udp", "localhost:12201")
    if err != nil {
        panic(err)
    }
    defer log.Close()

    // send debug message with attributes
    log.Debug("Test message.\nMore info...",
        slog.Any("log", log),
        slog.Bool("bool", true),
        slog.Time("now", time.Now()),
        slog.Group("group",
            slog.String("str", "string value"),
            slog.Duration("duration", time.Hour/3)),
        slog.Any("object", struct {
            Text string `json:"text"`
        }{Text: "text"}),
    )

    // register as default
    slog.SetDefault(log.Logger)
}

Languages

Go100.0%

Contributors

MIT License
Created December 6, 2022
Updated May 4, 2023
mdigger/graylog | GitHunt