Files

25 lines
644 B
Go

package auditsink
import (
"context"
"log/slog"
"github.com/klarkxy/nekonest/relaycore"
)
// Sink deliberately logs only event classification and error state. It never
// serializes prompt, transcript, path, attachment, or approval payloads.
type Sink struct{ Logger *slog.Logger }
func (sink Sink) Emit(_ context.Context, event relaycore.AuditEvent) {
logger := sink.Logger
if logger == nil {
logger = slog.Default()
}
arguments := []any{"component", event.Component, "event", event.Name}
if event.Err != nil {
arguments = append(arguments, "error", event.Err.Error())
}
logger.Info("relay data-plane event", arguments...)
}