我有以下代码将错误记录到应用程序洞察中。我使用 SeriLog 并用属性丰富它
var log = new LoggerConfiguration()
.Enrich.FromLogContext()
.Enrich.WithProperty("ApplicationName", "MyDashboard").
WriteTo.ApplicationInsights(builder.Configuration
.GetConnectionString("APPLICATIONINSIGHTS_CONNECTION_STRING"), new TraceTelemetryConverter())
.CreateLogger();
SonarQube 不断标记此行,要求确保记录器的配置安全。
我该如何解决这个问题?
现在回到解决方案,您需要承受
WriteTo.ApplicationInsights()
的过载。包括以 Serilog.Sinks.ApplicationInsights.Configuration.ApplicationInsightsConfiguration
对象作为第二个参数的方法的重载版本。
using Serilog.Sinks.ApplicationInsights;
var log = new LoggerConfiguration()
.Enrich.FromLogContext()
.Enrich.WithProperty("ApplicationName", "MyDashboard")
.WriteTo.ApplicationInsights(builder.Configuration.GetConnectionString("APPLICATIONINSIGHTS_CONNECTION_STRING"), new ApplicationInsightsConfigurationBuilder()
.SetTelemetryConverter(new TraceTelemetryConverter())
.DisableSensitiveInformationLogging()
.Build())
.CreateLogger();
代码将创建一个记录器,该记录器将使用
TraceTelemetryConverter
将遥测数据写入 Application Insights,并且 DisableSensitiveInformationLogging()
方法指示记录器不要记录任何敏感信息,从而解决您的 SonarQube 警告。