55 instantiations of LogBufferingFilterRule
Microsoft.AspNetCore.Diagnostics.Middleware (1)
Buffering\PerIncomingRequestLoggingBuilderExtensions.cs (1)
100
options.Rules.Add(new
LogBufferingFilterRule
(logLevel: logLevel));
Microsoft.AspNetCore.Diagnostics.Middleware.Tests (13)
Buffering\PerIncomingRequestLoggingBuilderExtensionsTests.cs (9)
57
new
(categoryName: "Program.MyLogger", logLevel: LogLevel.Information, eventId: 1, eventName: "number one"),
58
new
(logLevel: LogLevel.Information),
77
new
(categoryName: "Program.MyLogger", logLevel: LogLevel.Information, eventId: 1, eventName: "number one"),
78
new
(logLevel: LogLevel.Information),
83
options.Rules.Add(new
LogBufferingFilterRule
(categoryName: "Program.MyLogger",
85
options.Rules.Add(new
LogBufferingFilterRule
(logLevel: LogLevel.Information));
99
new
(categoryName: "Program.MyLogger", logLevel: LogLevel.Information, eventId: 1, eventName: "number one"),
100
new
(logLevel : LogLevel.Information),
104
new
(logLevel: LogLevel.Information),
Buffering\PerRequestLogBufferingOptionsCustomValidatorTests.cs (1)
21
new
LogBufferingFilterRule
(categoryName: "**")
Logging\AcceptanceTests.cs (3)
867
options.Rules.Add(new
LogBufferingFilterRule
(logLevel: LogLevel.Debug));
916
options.Rules.Add(new
LogBufferingFilterRule
(logLevel: LogLevel.Debug));
917
options.Rules.Add(new
LogBufferingFilterRule
(logLevel: LogLevel.Debug, categoryName: "logatrequest"));
Microsoft.Extensions.Telemetry (1)
Buffering\GlobalBufferLoggingBuilderExtensions.cs (1)
86
.Configure(options => options.Rules.Add(new
LogBufferingFilterRule
(logLevel: logLevel)));
Microsoft.Extensions.Telemetry.Tests (40)
Buffering\GlobalBufferLoggerBuilderExtensionsTests.cs (5)
48
new
("Program.MyLogger", LogLevel.Information, 1, "number one", [new("region", "westus2"), new ("priority", 1)]),
49
new
(logLevel: LogLevel.Information),
78
new
(categoryName: "Program.MyLogger", logLevel: LogLevel.Information, eventId: 1, eventName: "number one"),
79
new
(logLevel : LogLevel.Information),
83
new
(logLevel: LogLevel.Information),
Buffering\GlobalLogBufferingOptionsCustomValidatorTests.cs (1)
20
new
LogBufferingFilterRule
(categoryName: "**")
Buffering\LogBufferingFilterRuleTests.cs (33)
21
new
LogBufferingFilterRule
(),
22
new
LogBufferingFilterRule
(eventId: 1),
23
new
LogBufferingFilterRule
(logLevel: LogLevel.Information, eventId: 1),
24
new
LogBufferingFilterRule
(logLevel: LogLevel.Information, eventId: 1),
25
new
LogBufferingFilterRule
(logLevel: LogLevel.Warning),
26
new
LogBufferingFilterRule
(logLevel: LogLevel.Warning, eventId: 2),
27
new
LogBufferingFilterRule
(logLevel: LogLevel.Warning, eventId: 1),
28
new
LogBufferingFilterRule
("Program1.MyLogger", LogLevel.Warning, 1),
29
new
LogBufferingFilterRule
("Program.*MyLogger1", LogLevel.Warning, 1),
30
new
LogBufferingFilterRule
("Program.MyLogger", LogLevel.Warning, 1, attributes: [new("region2", "westus2")]), // inapplicable key
31
new
LogBufferingFilterRule
("Program.MyLogger", LogLevel.Warning, 1, attributes:[new("region", "westus3")]), // inapplicable value
32
new
LogBufferingFilterRule
("Program.MyLogger", LogLevel.Warning, 1, attributes:[new("region", "westus2")]), // the best rule - [11]
33
new
LogBufferingFilterRule
("Program.MyLogger", LogLevel.Warning, 2),
34
new
LogBufferingFilterRule
("Program.MyLogger", eventId: 1),
35
new
LogBufferingFilterRule
(logLevel: LogLevel.Warning, eventId: 1),
36
new
LogBufferingFilterRule
("Program", LogLevel.Warning, 1),
37
new
LogBufferingFilterRule
("Program.MyLogger", LogLevel.Warning),
38
new
LogBufferingFilterRule
("Program.MyLogger", LogLevel.Error, 1),
59
new
LogBufferingFilterRule
(logLevel: LogLevel.Information, eventId: 1),
60
new
LogBufferingFilterRule
(logLevel: LogLevel.Information, eventId: 1),
61
new
LogBufferingFilterRule
(logLevel: LogLevel.Warning),
62
new
LogBufferingFilterRule
(logLevel: LogLevel.Warning, eventId: 2),
63
new
LogBufferingFilterRule
(logLevel: LogLevel.Warning, eventId: 1),
64
new
LogBufferingFilterRule
("Program1.MyLogger", LogLevel.Warning, 1),
65
new
LogBufferingFilterRule
("Program.*MyLogger1", LogLevel.Warning, 1),
66
new
LogBufferingFilterRule
("Program.MyLogger", LogLevel.Warning, 1),
67
new
LogBufferingFilterRule
("Program.MyLogger*", LogLevel.Warning, 1),
68
new
LogBufferingFilterRule
("Program.MyLogger", LogLevel.Warning, 1, attributes:[new("region", "westus2")]), // the best rule
69
new
LogBufferingFilterRule
("Program.MyLogger*", LogLevel.Warning, 1, attributes:[new("region", "westus2")]), // same as the best, but last and should be selected
86
new
LogBufferingFilterRule
("Program.MyLogger", LogLevel.Warning, 1, attributes:[new("priority", 1)]),
87
new
LogBufferingFilterRule
("Program.MyLogger", LogLevel.Warning, 1, attributes:[new("priority", 2)]), // the best rule
88
new
LogBufferingFilterRule
("Program.MyLogger", LogLevel.Warning, 1, attributes:[new("priority", 3)]),
89
new
LogBufferingFilterRule
("Program.MyLogger", LogLevel.Warning, 1),
Logging\ExtendedLoggerTests.cs (1)
995
options.Rules.Add(new
LogBufferingFilterRule
(logLevel: LogLevel.Warning));
51 references to LogBufferingFilterRule
Microsoft.AspNetCore.Diagnostics.Middleware (5)
Buffering\IncomingRequestLogBuffer.cs (1)
29
private readonly
LogBufferingFilterRule
[] _filterRules;
Buffering\PerRequestLogBufferingConfigureOptions.cs (1)
43
foreach (
LogBufferingFilterRule
rule in parsedOptions.Rules)
Buffering\PerRequestLogBufferingOptions.cs (2)
62
/// Gets or sets the collection of <see cref="
LogBufferingFilterRule
"/> used for filtering log messages for the purpose of further buffering.
72
public IList<
LogBufferingFilterRule
> Rules { get; set; } = [];
Buffering\PerRequestLogBufferingOptionsCustomValidator.cs (1)
18
foreach (
LogBufferingFilterRule
rule in options.Rules)
Microsoft.AspNetCore.Diagnostics.Middleware.Tests (5)
Buffering\PerIncomingRequestLoggingBuilderExtensionsTests.cs (4)
55
List<
LogBufferingFilterRule
> expectedData =
75
List<
LogBufferingFilterRule
> expectedData =
97
List<
LogBufferingFilterRule
> initialData =
102
List<
LogBufferingFilterRule
> updatedData =
Buffering\PerRequestLogBufferingOptionsCustomValidatorTests.cs (1)
19
Rules = new List<
LogBufferingFilterRule
>
Microsoft.Extensions.Telemetry (28)
Buffering\GlobalBuffer.cs (1)
20
internal
LogBufferingFilterRule
[] LastKnownGoodFilterRules;
Buffering\GlobalLogBufferingConfigureOptions.cs (1)
43
foreach (
LogBufferingFilterRule
rule in parsedOptions.Rules)
Buffering\GlobalLogBufferingOptions.cs (2)
61
/// Gets or sets the collection of <see cref="
LogBufferingFilterRule
"/> used for filtering log messages for the purpose of further buffering.
70
public IList<
LogBufferingFilterRule
> Rules { get; set; } = [];
Buffering\GlobalLogBufferingOptionsCustomValidator.cs (1)
17
foreach (
LogBufferingFilterRule
rule in options.Rules)
Buffering\LogBufferingFilterRule.cs (1)
21
/// Initializes a new instance of the <see cref="
LogBufferingFilterRule
"/> class.
Buffering\LogBufferingFilterRuleSelector.cs (22)
24
private static readonly ObjectPool<List<
LogBufferingFilterRule
>> _rulePool =
25
PoolFactory.CreateListPool<
LogBufferingFilterRule
>();
27
private readonly ObjectPool<List<
LogBufferingFilterRule
>> _cachedRulePool =
28
PoolFactory.CreateListPool<
LogBufferingFilterRule
>();
29
private readonly ConcurrentDictionary<(LogLevel, EventId), List<
LogBufferingFilterRule
>> _ruleCache = new();
31
public static
LogBufferingFilterRule
[] SelectByCategory(IList<
LogBufferingFilterRule
> rules, string category)
33
List<
LogBufferingFilterRule
> rulesOfCategory = _rulePool.Get();
37
foreach (
LogBufferingFilterRule
rule in rules)
55
foreach (((LogLevel, EventId) key, List<
LogBufferingFilterRule
> value) in _ruleCache)
63
public
LogBufferingFilterRule
? Select(
64
IList<
LogBufferingFilterRule
> rules,
70
List<
LogBufferingFilterRule
> ruleCandidates = _ruleCache.GetOrAdd((logLevel, eventId), _ =>
72
List<
LogBufferingFilterRule
> candidates = _cachedRulePool.Get();
73
foreach (
LogBufferingFilterRule
rule in rules)
85
LogBufferingFilterRule
? currentBest = null;
86
foreach (
LogBufferingFilterRule
ruleCandidate in ruleCandidates)
97
private static bool IsAttributesMatch(
LogBufferingFilterRule
rule, IReadOnlyList<KeyValuePair<string, object?>>? attributes)
114
private static bool IsBetter(
LogBufferingFilterRule
? currentBest,
LogBufferingFilterRule
ruleCandidate)
133
private static bool IsMatch(
LogBufferingFilterRule
rule, string category)
166
private static bool IsMatch(
LogBufferingFilterRule
rule, LogLevel logLevel, EventId eventId)
Microsoft.Extensions.Telemetry.Tests (13)
Buffering\GlobalBufferLoggerBuilderExtensionsTests.cs (3)
46
List<
LogBufferingFilterRule
> expectedData =
76
List<
LogBufferingFilterRule
> initialData =
81
List<
LogBufferingFilterRule
> updatedData =
Buffering\GlobalLogBufferingOptionsCustomValidatorTests.cs (1)
18
Rules = new List<
LogBufferingFilterRule
>
Buffering\LogBufferingFilterRuleTests.cs (9)
19
var rules = new List<
LogBufferingFilterRule
>
42
LogBufferingFilterRule
[] categorySpecificRules = LogBufferingFilterRuleSelector.SelectByCategory(rules, "Program.MyLogger");
43
LogBufferingFilterRule
? result = _selector.Select(
57
var rules = new List<
LogBufferingFilterRule
>
73
LogBufferingFilterRule
[] categorySpecificRules = LogBufferingFilterRuleSelector.SelectByCategory(rules, "Program.MyLogger");
74
LogBufferingFilterRule
? result = _selector.Select(categorySpecificRules, LogLevel.Warning, 1, [new("region", "westus2")]);
84
var rules = new List<
LogBufferingFilterRule
>
93
LogBufferingFilterRule
[] categorySpecificRules = LogBufferingFilterRuleSelector.SelectByCategory(rules, "Program.MyLogger");
94
LogBufferingFilterRule
? result = _selector.Select(categorySpecificRules, LogLevel.Warning, 1, [new("priority", "2")]);