Skip to content

jxsl13/slogrus

Repository files navigation

slogrus

slogrus is a logger wrapper that allows your sirupsen/logrus.Logger to be passed to functions or methods as slog.Logger. The slogrus.NewHandler implements the slog.Handler interface that can be passed to the constructor function slog.New(h slog.Handler) *Logger .

Import

go get github.com/jxsl13/slogrus@latest

examples

package slogrus_test

import (
	"os"
	"time"

	"log/slog"

	"github.com/jxsl13/slogrus"
	"github.com/sirupsen/logrus"
)

func ExampleLogger() {
	log := logrus.New()
	log.SetOutput(os.Stdout)
	log.SetLevel(logrus.DebugLevel)

	// local variable
	slog := slog.New(slogrus.NewHandler(log, nil))

	slog.Debug("debug message", "key", "value")
	slog.Info("info message", "key", "value")
	slog.Warn("warn message", "key", "value")
	slog.Error("error message", "key", "value")
}

func ExampleDefaultLogger() {
	// global package
	slog.SetDefault(slog.New(slogrus.NewHandler(logrus.StandardLogger(), nil)))

	slog.Debug("debug message", "key", "value")
	slog.Info("info message", "key", "value")
	slog.Warn("warn message", "key", "value")
	slog.Error("error message", "key", "value")
}

func ExampleJSONLogger() {
	log := logrus.New()
	log.SetFormatter(&logrus.JSONFormatter{TimestampFormat: time.RFC3339Nano})

	// global package
	slog.SetDefault(slog.New(slogrus.NewHandler(log, nil)))

	slog.Debug("debug message", "key", "value")
	slog.Info("info message", "key", "value")
	slog.Warn("warn message", "key", "value")
	slog.Error("error message", "key", "value")
}

About

wrapper for logrus in order to be used as slog.Handler

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •