vgarvardt / slogex

Golang log/slog extensions

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

slogex

GoDev Coverage Status ReportCard License

Collection of Golang log/slog logger extensions and related wrappers.

Extensions

Examples

github.com/vgarvardt/slogex/observer

package something_test

import (
    "log/slog"
    "testing"

    "github.com/vgarvardt/slogex/observer"
)

func TestSomeLogs(t *testing.T) {
    handler, logs := observer.New(nil)

    logger := slog.New(handler).With(slog.Int("i", 1))
    logger.Info("foo")

    loggerRecords := logs.All()
    for _, r := range loggerRecords {
        t.Log(r.Record.Level, r.Record.Message, r.Attrs)
    }
}

github.com/vgarvardt/slogex/fxlogger

package main

import (
    "log/slog"

    "go.uber.org/fx"
    "go.uber.org/fx/fxevent"

    "github.com/vgarvardt/slogex/fxlogger"
)

func FxOptions() []fx.Option {
    return []fx.Option{
        fx.WithLogger(func(logger *slog.Logger) fxevent.Logger {
            return &fxlogger.Logger{
                Logger: logger.With(slog.String("source", "fx")),
            }
        }),
    }
}

About

Golang log/slog extensions

License:Apache License 2.0


Languages

Language:Go 99.1%Language:Makefile 0.9%