Logging

All transports support a common logger interface.

Logger Interface

type Logger interface {
    Debug(msg string, kv ...any)
    Info(msg string, kv ...any)
    Warn(msg string, kv ...any)
    Error(msg string, kv ...any)
    Fatal(msg string, kv ...any)
}

Setting the Logger

Via Router Facade

r := router.New()
r.SetLogger(logger.NewSlog(slog.Default()))

Via Transport

t := http.New()
t.Logger = logger.NewSlog(slog.Default())

Available Implementations

Nop Logger (Default)

Silent, no output.

t.Logger = logger.Nop

Slog Logger

import "github.com/mirkobrombin/go-module-router/v2/pkg/logger"

t.Logger = logger.NewSlog(slog.Default())

Zap Logger

zapL, _ := zap.NewDevelopment()
t.Logger = &logger.Zap{L: zapL}

Custom Logger

Implement the Logger interface for your own logging solution.