docs: document default values for Filters properties in XML docs

Continues the work started for #5917 (already covered Targets, Layouts,
LayoutRenderers and Target Wrappers), extending the same pattern to the
NLog.Filters namespace so default values show up in IntelliSense and the
generated API docs.

Adds a regression test that scans all settable NLog.Filters properties
against the generated XML documentation file and fails if any of them is
missing a documented default value.
This commit is contained in:
dualfroz committed 2026-09-05 18:31:42 +02:00
1 parent 94b7d9de1f
commit 4640c55582
8 files changed
+19

No files matched your search

+1
View File
@@ -50,6 +50,7 @@ namespace NLog.Filters
/// <summary>
/// Gets or sets the condition expression.
/// </summary>
/// <remarks><b>[Required]</b> Default: <see langword="null"/></remarks>
/// <docgen category='Filtering Options' order='10' />
public ConditionExpression Condition { get; set; } = ConditionLiteralExpression.Null;
+1
View File
@@ -53,6 +53,7 @@ namespace NLog.Filters
/// <summary>
/// Gets or sets the action to be taken when filter matches.
/// </summary>
/// <remarks>Default: <see cref="FilterResult.Neutral"/></remarks>
/// <docgen category='Filtering Options' order='10' />
public FilterResult Action { get; set; }
+1
View File
@@ -51,6 +51,7 @@ namespace NLog.Filters
/// Gets or sets the layout to be used to filter log messages.
/// </summary>
/// <value>The layout.</value>
/// <remarks><b>[Required]</b> Default: <see cref="Layout.Empty"/></remarks>
/// <docgen category='Filtering Options' order='10' />
public Layout Layout { get; set; } = Layout.Empty;
}
+2
View File
@@ -45,12 +45,14 @@ namespace NLog.Filters
/// <summary>
/// Gets or sets a value indicating whether to ignore case when comparing strings.
/// </summary>
/// <remarks>Default: <see langword="false"/></remarks>
/// <docgen category='Filtering Options' order='10' />
public bool IgnoreCase { get; set; }
/// <summary>
/// Gets or sets the substring to be matched.
/// </summary>
/// <remarks><b>[Required]</b> Default: <see cref="string.Empty"/></remarks>
/// <docgen category='Filtering Options' order='10' />
public string Substring { get; set; } = string.Empty;
+2
View File
@@ -45,12 +45,14 @@ namespace NLog.Filters
/// <summary>
/// Gets or sets a value indicating whether to ignore case when comparing strings.
/// </summary>
/// <remarks>Default: <see langword="false"/></remarks>
/// <docgen category='Filtering Options' order='10' />
public bool IgnoreCase { get; set; }
/// <summary>
/// Gets or sets a string to compare the layout to.
/// </summary>
/// <remarks>Default: <see cref="string.Empty"/></remarks>
/// <docgen category='Filtering Options' order='10' />
public string CompareTo { get; set; } = string.Empty;
@@ -45,12 +45,14 @@ namespace NLog.Filters
/// <summary>
/// Gets or sets the substring to be matched.
/// </summary>
/// <remarks><b>[Required]</b> Default: <see cref="string.Empty"/></remarks>
/// <docgen category='Filtering Options' order='10' />
public string Substring { get; set; } = string.Empty;
/// <summary>
/// Gets or sets a value indicating whether to ignore case when comparing strings.
/// </summary>
/// <remarks>Default: <see langword="false"/></remarks>
/// <docgen category='Filtering Options' order='10' />
public bool IgnoreCase { get; set; }
+2
View File
@@ -52,12 +52,14 @@ namespace NLog.Filters
/// <summary>
/// Gets or sets a string to compare the layout to.
/// </summary>
/// <remarks>Default: <see cref="string.Empty"/></remarks>
/// <docgen category='Filtering Options' order='10' />
public string CompareTo { get; set; } = string.Empty;
/// <summary>
/// Gets or sets a value indicating whether to ignore case when comparing strings.
/// </summary>
/// <remarks>Default: <see langword="false"/></remarks>
/// <docgen category='Filtering Options' order='10' />
public bool IgnoreCase { get; set; }
+8
View File
@@ -54,12 +54,14 @@ namespace NLog.Filters
/// <summary>
/// How long before a filter expires, and logging is accepted again
/// </summary>
/// <remarks>Default: <c>10</c></remarks>
/// <docgen category='Filtering Options' order='10' />
public int TimeoutSeconds { get; set; } = 10;
/// <summary>
/// Max length of filter values, will truncate if above limit
/// </summary>
/// <remarks>Default: <c>1000</c></remarks>
/// <docgen category='Filtering Options' order='10' />
public int MaxLength { get; set; } = 1000;
@@ -67,30 +69,35 @@ namespace NLog.Filters
/// Applies the configured action to the initial logevent that starts the timeout period.
/// Used to configure that it should ignore all events until timeout.
/// </summary>
/// <remarks>Default: <see langword="false"/></remarks>
/// <docgen category='Filtering Options' order='10' />
public bool IncludeFirst { get; set; }
/// <summary>
/// Max number of unique filter values to expect simultaneously
/// </summary>
/// <remarks>Default: <c>50000</c></remarks>
/// <docgen category='Filtering Options' order='100' />
public int MaxFilterCacheSize { get; set; } = 50000;
/// <summary>
/// Default number of unique filter values to expect, will automatically increase if needed
/// </summary>
/// <remarks>Default: <c>1000</c></remarks>
/// <docgen category='Filtering Options' order='100' />
public int DefaultFilterCacheSize { get; set; } = 1000;
/// <summary>
/// Insert FilterCount value into <see cref="LogEventInfo.Properties"/> when an event is no longer filtered
/// </summary>
/// <remarks>Default: <see cref="string.Empty"/></remarks>
/// <docgen category='Filtering Options' order='10' />
public string FilterCountPropertyName { get; set; } = string.Empty;
/// <summary>
/// Append FilterCount to the <see cref="LogEventInfo.Message"/> when an event is no longer filtered
/// </summary>
/// <remarks>Default: <see cref="string.Empty"/></remarks>
/// <docgen category='Filtering Options' order='10' />
public string FilterCountMessageAppendFormat { get; set; } = string.Empty;
@@ -106,6 +113,7 @@ namespace NLog.Filters
/// <summary>
/// Default buffer size for the internal buffers
/// </summary>
/// <remarks>Default: <c>1000</c></remarks>
/// <docgen category='Filtering Options' order='100' />
public int OptimizeBufferDefaultLength { get; set; } = 1000;