Table of Contents

Class CompositeAuditLogger

Namespace
Tharga.Team.Service.Audit
Assembly
Tharga.Team.Service.dll

Dispatches audit entries to configured loggers based on AuditOptions filters, applying any registered IAuditEnrichers first.

public class CompositeAuditLogger : IAuditLogger
Inheritance
CompositeAuditLogger
Implements
Inherited Members

Constructors

CompositeAuditLogger(IEnumerable<IAuditLogger>, IOptions<AuditOptions>, IEnumerable<IAuditEnricher>, ILogger<CompositeAuditLogger>)

public CompositeAuditLogger(IEnumerable<IAuditLogger> loggers, IOptions<AuditOptions> options, IEnumerable<IAuditEnricher> enrichers = null, ILogger<CompositeAuditLogger> logger = null)

Parameters

loggers IEnumerable<IAuditLogger>
options IOptions<AuditOptions>
enrichers IEnumerable<IAuditEnricher>
logger ILogger<CompositeAuditLogger>

Methods

Log(AuditEntry)

public void Log(AuditEntry entry)

Parameters

entry AuditEntry

QueryAsync(AuditQuery)

public virtual Task<AuditQueryResult> QueryAsync(AuditQuery query)

Parameters

query AuditQuery

Returns

Task<AuditQueryResult>

Remarks

Virtual so the query seam can be observed in a test. The composite only queries a MongoDbAuditLogger, which is a concrete class with non-virtual members, so without this there is no way to assert what query a caller actually issued — and the narrowing that keeps a caller inside the team they were authorized for is exactly a property of the query.