Documentation
¶
Overview ¶
Package sloghelper provides helpers around the standard library log/slog package.
It includes logger construction, context storage, error attributes with stack information when available, and a handler wrapper for shared handling hooks.
Index ¶
- Variables
- func Apply(opt HandlerOption)
- func Error(err error) slog.Attr
- func ErrorValue(err error) slog.Value
- func FromContext(ctx context.Context) *slog.Logger
- func NewContext(ctx context.Context, logger *slog.Logger) context.Context
- func NewHandler(hdl slog.Handler, opts ...HandlerOption) slog.Handler
- func NewLog(opt Options) *slog.Logger
- type HandleFunc
- type Handler
- type HandlerOption
- type Options
- type StackTracer
Examples ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var (
ErrorKey = "error"
)
Functions ¶
func Apply ¶
func Apply(opt HandlerOption)
func ErrorValue ¶
func NewContext ¶
Example ¶
package main
import (
"context"
"fmt"
"io"
"log/slog"
"github.com/go-jimu/components/sloghelper"
)
func main() {
logger := slog.New(slog.NewTextHandler(io.Discard, nil))
ctx := sloghelper.NewContext(context.Background(), logger)
fmt.Println(sloghelper.FromContext(ctx) == logger)
}
Output: true
func NewHandler ¶
func NewHandler(hdl slog.Handler, opts ...HandlerOption) slog.Handler
Types ¶
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
func (*Handler) Apply ¶
func (ch *Handler) Apply(opt HandlerOption)
type HandlerOption ¶
type HandlerOption func(*Handler)
func WithHandleFunc ¶
func WithHandleFunc(fn HandleFunc) HandlerOption
type Options ¶
type Options struct {
Level string `json:"level" toml:"level" yaml:"level"`
Output string `json:"output" toml:"output" yaml:"output"`
MaxSize int `json:"max_size" toml:"max_size" yaml:"max_size"`
MaxAge int `json:"max_age" toml:"max_age" yaml:"max_age"`
MaxBackups int `json:"max_backups" toml:"max_backups" yaml:"max_backups"`
LocalTime bool `json:"local_time" toml:"local_time" yaml:"local_time"`
Compress bool `json:"compress" toml:"compress" yaml:"compress"`
}
type StackTracer ¶
type StackTracer interface {
StackTrace() errors.StackTrace
}
Click to show internal directories.
Click to hide internal directories.