diff --git a/src/NServiceBus.AzureFunctions.Worker.Analyzer.Tests/ConfigurationAnalyzerTests.cs b/src/NServiceBus.AzureFunctions.Worker.Analyzer.Tests/ConfigurationAnalyzerTests.cs index 932237d9..02be1699 100644 --- a/src/NServiceBus.AzureFunctions.Worker.Analyzer.Tests/ConfigurationAnalyzerTests.cs +++ b/src/NServiceBus.AzureFunctions.Worker.Analyzer.Tests/ConfigurationAnalyzerTests.cs @@ -85,7 +85,7 @@ void Bar(ServiceBusTriggeredEndpointConfiguration endpointConfig) } }"; - return Assert(LogDiagnosticsNotRecommendedId, source); + return Assert(LogDiagnosticsInfoId, source); } [Test] @@ -108,6 +108,6 @@ void Bar(SomeOtherClass otherClass) } }"; - return Assert(LogDiagnosticsNotRecommendedId, source); + return Assert(LogDiagnosticsInfoId, source); } } \ No newline at end of file diff --git a/src/NServiceBus.AzureFunctions.Worker.Analyzer/AzureFunctionsDiagnostics.cs b/src/NServiceBus.AzureFunctions.Worker.Analyzer/AzureFunctionsDiagnostics.cs index 69f88e54..4a40a905 100644 --- a/src/NServiceBus.AzureFunctions.Worker.Analyzer/AzureFunctionsDiagnostics.cs +++ b/src/NServiceBus.AzureFunctions.Worker.Analyzer/AzureFunctionsDiagnostics.cs @@ -21,7 +21,7 @@ public static class AzureFunctionsDiagnostics public const string PrefetchCountNotAllowedId = "NSBWFUNC015"; public const string PrefetchMultiplierNotAllowedId = "NSBWFUNC016"; public const string TimeToWaitBeforeTriggeringCircuitBreakerNotAllowedId = "NSBWFUNC017"; - public const string LogDiagnosticsNotRecommendedId = "NSBWFUNC018"; + public const string LogDiagnosticsInfoId = "NSBWFUNC018"; const string DiagnosticCategory = "NServiceBus.AzureFunctions"; @@ -175,15 +175,14 @@ public static class AzureFunctionsDiagnostics isEnabledByDefault: true ); - internal static readonly DiagnosticDescriptor LogDiagnosticsNotRecommended = new DiagnosticDescriptor( - id: LogDiagnosticsNotRecommendedId, - title: "LogDiagnostics is not recommended in Azure Functions", - messageFormat: "'LogDiagnostics' is not recommended in Azure Functions. Use 'AdvancedConfiguration.CustomDiagnosticsWriter' for more control over diagnostics output.", - category: DiagnosticCategory, - defaultSeverity: DiagnosticSeverity.Warning, - isEnabledByDefault: true, - description: "'LogDiagnostics()' in Azure Functions only outputs to the console and will not create a diagnostics file. Use 'AdvancedConfiguration.CustomDiagnosticsWriter' instead for full control over how and where diagnostics information is written.", - helpLinkUri: "https://docs.particular.net/nservicebus/hosting/azure-functions-service-bus/#configuration-custom-diagnostics" - ); + internal static readonly DiagnosticDescriptor LogDiagnosticsInfo = new DiagnosticDescriptor( + id: LogDiagnosticsInfoId, + title: "Default logging with 'LogDiagnostics()' will log to the built-in Azure Functions logs", + messageFormat: "In Azure Functions, console output to the built-in logs is not persisted and may result in the loss of the diagnostic information. Consider using 'AdvancedConfiguration.CustomDiagnosticsWriter' for more control over diagnostics output.", + category: DiagnosticCategory, + defaultSeverity: DiagnosticSeverity.Info, + isEnabledByDefault: true, + helpLinkUri: "https://docs.particular.net/nservicebus/hosting/azure-functions-service-bus/#configuration-startup-diagnostics" + ); } } \ No newline at end of file diff --git a/src/NServiceBus.AzureFunctions.Worker.Analyzer/ConfigurationAnalyzer.cs b/src/NServiceBus.AzureFunctions.Worker.Analyzer/ConfigurationAnalyzer.cs index 80097658..1454283c 100644 --- a/src/NServiceBus.AzureFunctions.Worker.Analyzer/ConfigurationAnalyzer.cs +++ b/src/NServiceBus.AzureFunctions.Worker.Analyzer/ConfigurationAnalyzer.cs @@ -26,7 +26,7 @@ public class ConfigurationAnalyzer : DiagnosticAnalyzer AzureFunctionsDiagnostics.PrefetchMultiplierNotAllowed, AzureFunctionsDiagnostics.TimeToWaitBeforeTriggeringCircuitBreakerNotAllowed, AzureFunctionsDiagnostics.TransportTransactionModeNotAllowed, - AzureFunctionsDiagnostics.LogDiagnosticsNotRecommended + AzureFunctionsDiagnostics.LogDiagnosticsInfo ); static readonly Dictionary NotAllowedEndpointConfigurationMethods @@ -59,10 +59,10 @@ static readonly Dictionary NotAllowedTransportSett ["Transactions"] = AzureFunctionsDiagnostics.TransportTransactionModeNotAllowed }; - static readonly Dictionary NotRecommendedEndpointConfigurationMethods + static readonly Dictionary InfoEndpointConfigurationMethods = new Dictionary { - ["LogDiagnostics"] = AzureFunctionsDiagnostics.LogDiagnosticsNotRecommended + ["LogDiagnostics"] = AzureFunctionsDiagnostics.LogDiagnosticsInfo }; public override void Initialize(AnalysisContext context) @@ -183,7 +183,7 @@ static void AnalyzeTransportExtensions(SyntaxNodeAnalysisContext context, Invoca static void AnalyzeLogDiagnostics(SyntaxNodeAnalysisContext context, InvocationExpressionSyntax invocationExpression, MemberAccessExpressionSyntax memberAccessExpression) { - if (!NotRecommendedEndpointConfigurationMethods.TryGetValue(memberAccessExpression.Name.Identifier.Text, out var diagnosticDescriptor)) + if (!InfoEndpointConfigurationMethods.TryGetValue(memberAccessExpression.Name.Identifier.Text, out var diagnosticDescriptor)) { return; }