cspslog

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: May 6, 2024 License: AGPL-3.0 Imports: 8 Imported by: 0

Documentation

Overview

Package cspslog collects and validates slog records as CSP traces

Package cspslog lets you model log/slog log output as a CSP process.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HasAttributeOfKind

func HasAttributeOfKind(key string, kind slog.Kind) anf.Set

HasAttributeOfKind returns a [Set] containing all [Event]s that have an attribute with a particular key and with a particular kind of value.

func HasAttributeWithKey

func HasAttributeWithKey(key string) anf.Set

HasAttributeWithKey returns a [Set] containing all [Event]s that have an attribute with a particular key (and with any value).

func Only

func Only(e Event) anf.Set

Only returns a [Set] that contains a single Event.

Types

type Event

type Event struct {
	slog.Record
}

Event is a CSP event that contains a single slog.Record.

func (Event) AsSet

func (e Event) AsSet() csp.EventSet

func (Event) Equal

func (e Event) Equal(other Event) bool

Equal returns whether two events are equal.

func (Event) Format

func (e Event) Format(f fmt.State, verb rune)

func (Event) Get

func (e Event) Get(key string) (slog.Value, bool)

Get returns the event attribute with the given key.

func (Event) String

func (e Event) String() string

type RecordingHandler

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

RecordingHandler is a log/slog.Handler that records all logged events as a CSP trace.

func NewRecordingHandler

func NewRecordingHandler() RecordingHandler

NewRecordingHandler returns a new RecordingHandler that records all logged events as a CSP trace.

func (RecordingHandler) AsTrace

func (h RecordingHandler) AsTrace() csp.Trace

AsTrace returns a csp.Trace containing the events recorded by this handler.

func (RecordingHandler) Enabled

func (h RecordingHandler) Enabled(ctx context.Context, level slog.Level) bool

func (RecordingHandler) Events

func (h RecordingHandler) Events() []Event

Events returns a slice of the events recorded by this handler.

func (RecordingHandler) Handle

func (h RecordingHandler) Handle(ctx context.Context, r slog.Record) error

func (RecordingHandler) WithAttrs

func (h RecordingHandler) WithAttrs(attrs []slog.Attr) slog.Handler

func (RecordingHandler) WithGroup

func (h RecordingHandler) WithGroup(name string) slog.Handler

type TraceCheckingHandler

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

TraceCheckingHandler is a log/slog.Handler that records all logged events as a CSP trace.

func NewTraceCheckingHandler

func NewTraceCheckingHandler(p csp.Process) TraceCheckingHandler

NewTraceCheckingHandler returns a new TraceCheckingHandler that verifies that logged events trace-refine a CSP process.

func (TraceCheckingHandler) Enabled

func (h TraceCheckingHandler) Enabled(ctx context.Context, level slog.Level) bool

func (TraceCheckingHandler) Handle

func (TraceCheckingHandler) WithAttrs

func (h TraceCheckingHandler) WithAttrs(attrs []slog.Attr) slog.Handler

func (TraceCheckingHandler) WithGroup

func (h TraceCheckingHandler) WithGroup(name string) slog.Handler

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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