Class CompositeAuditLogger
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
loggersIEnumerable<IAuditLogger>optionsIOptions<AuditOptions>enrichersIEnumerable<IAuditEnricher>loggerILogger<CompositeAuditLogger>
Methods
Log(AuditEntry)
public void Log(AuditEntry entry)
Parameters
entryAuditEntry
QueryAsync(AuditQuery)
public virtual Task<AuditQueryResult> QueryAsync(AuditQuery query)
Parameters
queryAuditQuery
Returns
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.