package slogzerolog import ( "log/slog" slogcommon "github.com/samber/slog-common" ) var SourceKey = "source" var ErrorKeys = []string{"error", "err"} type Converter func(addSource bool, replaceAttr func(groups []string, a slog.Attr) slog.Attr, loggerAttr []slog.Attr, groups []string, record *slog.Record) map[string]any func DefaultConverter(addSource bool, replaceAttr func(groups []string, a slog.Attr) slog.Attr, loggerAttr []slog.Attr, groups []string, record *slog.Record) map[string]any { // aggregate all attributes attrs := slogcommon.AppendRecordAttrsToAttrs(loggerAttr, groups, record) // developer formatters attrs = slogcommon.ReplaceError(attrs, ErrorKeys...) if addSource { attrs = append(attrs, slogcommon.Source(SourceKey, record)) } attrs = slogcommon.ReplaceAttrs(replaceAttr, []string{}, attrs...) attrs = slogcommon.RemoveEmptyAttrs(attrs) // handler formatter output := slogcommon.AttrsToMap(attrs...) return output }