Skip to main content

Module audit

Module audit 

Source
Expand description

Who read what, when — and never what was in it.

The library’s rule is that a value never reaches a diagnostic. A server makes that rule harder to keep and more important to keep: it is the one program here that serves values, so its log is the obvious place for one to escape on the way past.

The answer is structural rather than careful. An AuditEntry has no field a configuration value could occupy: a caller name and an endpoint, both from the server’s own configuration or from a fixed list, an application and a profile that have already passed the request-shape check, an outcome and a generation number. There is nowhere to put a value, so no amount of future editing puts one there.

Structs§

AuditEntry
One line of the audit log.
NoAudit
A sink that records nothing.
StderrAudit
The default sink: one line per request on stderr.

Enums§

Outcome
What happened to one request.

Traits§

AuditSink
Where audit lines go.