package slog
import (
)
func ( ...Handler) *MultiHandler {
:= make([]Handler, len())
copy(, )
return &MultiHandler{multi: }
}
type MultiHandler struct {
multi []Handler
}
func ( *MultiHandler) ( context.Context, Level) bool {
for := range .multi {
if .multi[].Enabled(, ) {
return true
}
}
return false
}
func ( *MultiHandler) ( context.Context, Record) error {
var []error
for := range .multi {
if .multi[].Enabled(, .Level) {
if := .multi[].Handle(, .Clone()); != nil {
= append(, )
}
}
}
return errors.Join(...)
}
func ( *MultiHandler) ( []Attr) Handler {
:= make([]Handler, 0, len(.multi))
for := range .multi {
= append(, .multi[].WithAttrs())
}
return &MultiHandler{multi: }
}
func ( *MultiHandler) ( string) Handler {
:= make([]Handler, 0, len(.multi))
for := range .multi {
= append(, .multi[].WithGroup())
}
return &MultiHandler{multi: }
}