15 instantiations of LogBufferingFilterRule
Microsoft.AspNetCore.Diagnostics.Middleware (1)
Microsoft.AspNetCore.Diagnostics.Middleware.Tests (13)
Buffering\PerIncomingRequestLoggingBuilderExtensionsTests.cs (9)
57new(categoryName: "Program.MyLogger", logLevel: LogLevel.Information, eventId: 1, eventName: "number one"),
58new(logLevel: LogLevel.Information),
77new(categoryName: "Program.MyLogger", logLevel: LogLevel.Information, eventId: 1, eventName: "number one"),
78new(logLevel: LogLevel.Information),
83options.Rules.Add(new LogBufferingFilterRule(categoryName: "Program.MyLogger",
85options.Rules.Add(new LogBufferingFilterRule(logLevel: LogLevel.Information));
99new(categoryName: "Program.MyLogger", logLevel: LogLevel.Information, eventId: 1, eventName: "number one"),
100new(logLevel : LogLevel.Information),
104new(logLevel: LogLevel.Information),
Microsoft.Extensions.Telemetry (1)
38 references to LogBufferingFilterRule
Microsoft.AspNetCore.Diagnostics.Middleware (5)
Microsoft.AspNetCore.Diagnostics.Middleware.Tests (5)
Microsoft.Extensions.Telemetry (28)
Buffering\LogBufferingFilterRuleSelector.cs (22)
24private static readonly ObjectPool<List<LogBufferingFilterRule>> _rulePool =
25PoolFactory.CreateListPool<LogBufferingFilterRule>();
27private readonly ObjectPool<List<LogBufferingFilterRule>> _cachedRulePool =
28PoolFactory.CreateListPool<LogBufferingFilterRule>();
29private readonly ConcurrentDictionary<(LogLevel, EventId), List<LogBufferingFilterRule>> _ruleCache = new();
31public static LogBufferingFilterRule[] SelectByCategory(IList<LogBufferingFilterRule> rules, string category)
33List<LogBufferingFilterRule> rulesOfCategory = _rulePool.Get();
37foreach (LogBufferingFilterRule rule in rules)
55foreach (((LogLevel, EventId) key, List<LogBufferingFilterRule> value) in _ruleCache)
63public LogBufferingFilterRule? Select(
64IList<LogBufferingFilterRule> rules,
70List<LogBufferingFilterRule> ruleCandidates = _ruleCache.GetOrAdd((logLevel, eventId), _ =>
72List<LogBufferingFilterRule> candidates = _cachedRulePool.Get();
73foreach (LogBufferingFilterRule rule in rules)
85LogBufferingFilterRule? currentBest = null;
86foreach (LogBufferingFilterRule ruleCandidate in ruleCandidates)
97private static bool IsAttributesMatch(LogBufferingFilterRule rule, IReadOnlyList<KeyValuePair<string, object?>>? attributes)
114private static bool IsBetter(LogBufferingFilterRule? currentBest, LogBufferingFilterRule ruleCandidate)
133private static bool IsMatch(LogBufferingFilterRule rule, string category)
166private static bool IsMatch(LogBufferingFilterRule rule, LogLevel logLevel, EventId eventId)