pm_slog

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2025 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package pm_slog provides a slog-based logging interceptor for pm subscriptions.

Example usage:

import (
	"log/slog"
	"github.com/zero-color/pm"
	"github.com/zero-color/pm/middleware/logging/pm_slog"
)

logger := slog.Default()
subscriber := pm.NewSubscriber(
	client,
	pm.WithSubscriptionInterceptors(
		pm_slog.SubscriptionInterceptor(logger),
	),
)

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultMessageProducer

func DefaultMessageProducer(ctx context.Context, msg string, err error, duration time.Duration)

DefaultMessageProducer writes the default message

func Extract

func Extract(ctx context.Context) *slog.Logger

Extract returns the slog.Logger from the context. If no logger is found, it returns the default logger.

func SubscriptionInterceptor

func SubscriptionInterceptor(logger *slog.Logger, opt ...Option) pm.SubscriptionInterceptor

SubscriptionInterceptor returns a subscription interceptor that optionally logs the subscription process.

func ToContext

func ToContext(ctx context.Context, logger *slog.Logger) context.Context

ToContext adds the slog.Logger to the context.

Types

type MessageProducer

type MessageProducer func(ctx context.Context, msg string, err error, duration time.Duration)

MessageProducer produces a user defined log message

type Option

type Option interface {
	// contains filtered or unexported methods
}

Option is a option to change configuration.

func WithLogDecider

func WithLogDecider(f pm_logging.LogDecider) Option

WithLogDecider customizes the function for deciding if the pm interceptor should log.

func WithMessageProducer

func WithMessageProducer(f MessageProducer) Option

WithMessageProducer customizes the function for logging.

type OptionFunc

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

Jump to

Keyboard shortcuts

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