Skip to content

Commit 056dce4

Browse files
committed
Fix warning CA1873: Evaluation of this argument may be expensive and unnecessary if logging is disabled
1 parent 717768f commit 056dce4

File tree

3 files changed

+11
-11
lines changed

3 files changed

+11
-11
lines changed

src/JsonApiDotNetCore.OpenApi.Swashbuckle/JsonApiActionDescriptorCollectionProvider.cs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
using Microsoft.AspNetCore.Mvc.Infrastructure;
1818
using Microsoft.AspNetCore.Mvc.Routing;
1919
using Microsoft.AspNetCore.Routing;
20-
using Microsoft.Extensions.Logging;
2120

2221
namespace JsonApiDotNetCore.OpenApi.Swashbuckle;
2322

@@ -27,32 +26,29 @@ namespace JsonApiDotNetCore.OpenApi.Swashbuckle;
2726
/// /article/{id}/{relationshipName} -> /article/{id}/author, /article/{id}/revisions, etc.
2827
/// ]]></code>
2928
/// </summary>
30-
internal sealed partial class JsonApiActionDescriptorCollectionProvider : IActionDescriptorCollectionProvider
29+
internal sealed class JsonApiActionDescriptorCollectionProvider : IActionDescriptorCollectionProvider
3130
{
3231
private const int FilterScope = 10;
3332
private static readonly Type ErrorDocumentType = typeof(ErrorResponseDocument);
3433

3534
private readonly IActionDescriptorCollectionProvider _defaultProvider;
3635
private readonly IControllerResourceMapping _controllerResourceMapping;
3736
private readonly JsonApiEndpointMetadataProvider _jsonApiEndpointMetadataProvider;
38-
private readonly ILogger<JsonApiActionDescriptorCollectionProvider> _logger;
3937
private readonly ConcurrentDictionary<int, Lazy<ActionDescriptorCollection>> _versionedActionDescriptorCache = new();
4038

4139
public ActionDescriptorCollection ActionDescriptors =>
4240
_versionedActionDescriptorCache.GetOrAdd(_defaultProvider.ActionDescriptors.Version, LazyGetActionDescriptors).Value;
4341

4442
public JsonApiActionDescriptorCollectionProvider(IActionDescriptorCollectionProvider defaultProvider, IControllerResourceMapping controllerResourceMapping,
45-
JsonApiEndpointMetadataProvider jsonApiEndpointMetadataProvider, ILogger<JsonApiActionDescriptorCollectionProvider> logger)
43+
JsonApiEndpointMetadataProvider jsonApiEndpointMetadataProvider)
4644
{
4745
ArgumentNullException.ThrowIfNull(defaultProvider);
4846
ArgumentNullException.ThrowIfNull(controllerResourceMapping);
4947
ArgumentNullException.ThrowIfNull(jsonApiEndpointMetadataProvider);
50-
ArgumentNullException.ThrowIfNull(logger);
5148

5249
_defaultProvider = defaultProvider;
5350
_controllerResourceMapping = controllerResourceMapping;
5451
_jsonApiEndpointMetadataProvider = jsonApiEndpointMetadataProvider;
55-
_logger = logger;
5652
}
5753

5854
private Lazy<ActionDescriptorCollection> LazyGetActionDescriptors(int version)
@@ -478,7 +474,4 @@ private static void SetNonPrimaryResponseMetadata(ActionDescriptor descriptor,
478474

479475
descriptorsByRelationship[relationship] = relationshipDescriptor;
480476
}
481-
482-
[LoggerMessage(Level = LogLevel.Warning, Message = "Hiding unsupported custom JSON:API action method [{HttpMethods}] {ActionMethod} in OpenAPI.")]
483-
private partial void LogSuppressedActionMethod(string httpMethods, string? actionMethod);
484477
}

src/JsonApiDotNetCore/QueryStrings/QueryStringReader.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,11 @@ public void ReadAll(DisableQueryStringAttribute? disableQueryStringAttribute)
4747

4848
if (reader != null)
4949
{
50-
LogParameterAccepted(parameterName, parameterValue, reader.GetType().Name);
50+
if (_logger.IsEnabled(LogLevel.Debug))
51+
{
52+
string readerType = reader.GetType().Name;
53+
LogParameterAccepted(parameterName, parameterValue, readerType);
54+
}
5155

5256
if (!reader.AllowEmptyValue && string.IsNullOrEmpty(parameterValue))
5357
{
@@ -74,7 +78,8 @@ public void ReadAll(DisableQueryStringAttribute? disableQueryStringAttribute)
7478
}
7579
}
7680

77-
[LoggerMessage(Level = LogLevel.Debug, Message = "Query string parameter '{ParameterName}' with value '{ParameterValue}' was accepted by {ReaderType}.")]
81+
[LoggerMessage(Level = LogLevel.Debug, SkipEnabledCheck = true,
82+
Message = "Query string parameter '{ParameterName}' with value '{ParameterValue}' was accepted by {ReaderType}.")]
7883
private partial void LogParameterAccepted(string parameterName, StringValues parameterValue, string readerType);
7984

8085
[LoggerMessage(Level = LogLevel.Debug, Message = "Query string parameter '{ParameterName}' was successfully read.")]

test/TestBuildingBlocks/XUnitLogHttpMessageHandler.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
using Microsoft.Extensions.Logging;
22
using Xunit.Abstractions;
33

4+
#pragma warning disable CA1873 // Avoid potentially expensive logging
5+
46
namespace TestBuildingBlocks;
57

68
/// <summary>

0 commit comments

Comments
 (0)