| File: Logging\FakeLogCollectorOptions.cs | Web Access |
| Project: src\src\Libraries\Microsoft.Extensions.Diagnostics.Testing\Microsoft.Extensions.Diagnostics.Testing.csproj (Microsoft.Extensions.Diagnostics.Testing) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using Microsoft.Shared.DiagnosticIds; namespace Microsoft.Extensions.Logging.Testing; /// <summary> /// Options for the fake logger. /// </summary> public class FakeLogCollectorOptions { /// <summary> /// Gets or sets the logger categories for which records are collected. /// </summary> /// <value>The default is an empty set.</value> /// <remarks> /// Defaults to an empty set, which doesn't filter any records. /// If not empty, only records coming from loggers in these categories will be collected by the fake logger. /// </remarks> public ISet<string> FilteredCategories { get; set; } = new HashSet<string>(); /// <summary> /// Gets or sets the logging levels for which records are collected. /// </summary> /// <value>The default is an empty set.</value> /// <remarks> /// Defaults to an empty set, which doesn't filter any records. /// If not empty, only records with the given level will be collected by the fake logger. /// </remarks> public ISet<LogLevel> FilteredLevels { get; set; } = new HashSet<LogLevel>(); /// <summary> /// Gets or sets custom filter for which records are collected. /// </summary> /// <value>The default is <see langword="null" />.</value> /// <remarks> /// Defaults to <see langword="null" /> which doesn't apply any additional filter to the records. /// If not empty, only records for which the filter function returns <see langword="true" /> will be collected by the fake logger. /// </remarks> [Experimental(DiagnosticIds.Experiments.Telemetry)] public Func<FakeLogRecord, bool>? CustomFilter { get; set; } /// <summary> /// Gets or sets a value indicating whether to collect records that are logged when the associated log level is currently disabled. /// </summary> /// <value> /// <see langword="true" /> if records that are logged when the associated log level is /// disabled are collected. The default is <see langword="true" />. /// </value> public bool CollectRecordsForDisabledLogLevels { get; set; } = true; /// <summary> /// Gets or sets the time provider to use when time-stamping log records. /// </summary> /// <value>The default is <see cref="TimeProvider.System" />.</value> public TimeProvider TimeProvider { get; set; } = TimeProvider.System; /// <summary> /// Gets or sets an output sink where every record harvested by the collector is sent. /// </summary> /// <value>The default is <see langword="null" />.</value> /// <remarks> /// By setting this property, you can have all log records harvested by the collector be copied somewhere convenient. /// </remarks> public Action<string>? OutputSink { get; set; } /// <summary> /// Gets or sets a delegate that is used to format log records in a specialized way before sending them to the registered output sink. /// </summary> public Func<FakeLogRecord, string> OutputFormatter { get; set; } = FakeLogRecord.Formatter; }