Skip to content

Commit a2df86f

Browse files
committed
duplicate exception logs removal
1 parent ce1e527 commit a2df86f

File tree

4 files changed

+41
-18
lines changed

4 files changed

+41
-18
lines changed

SharedKernel.Demo/SharedKernel.Demo.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
<ItemGroup>
1010
<PackageReference Include="AspNetCore.HealthChecks.Rabbitmq" Version="9.0.0"/>
11-
<PackageReference Include="MassTransit.RabbitMQ" Version="8.5.4" />
11+
<PackageReference Include="MassTransit.RabbitMQ" Version="8.5.5" />
1212
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="9.0.8"/>
1313
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="9.0.8"/>
1414
</ItemGroup>

src/SharedKernel/Logging/SerilogExtensions.cs

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,13 @@ public static WebApplicationBuilder AddSerilog(this WebApplicationBuilder builde
2121
LogBackend logBackend,
2222
Dictionary<string, string>? logAdditionalProperties = null,
2323
int daysToRetain = 7,
24-
bool asyncSinks = false)
24+
bool asyncSinks = false,
25+
bool suppressAspNetExceptionHandler = true)
2526
{
2627
builder.Logging.ClearProviders();
2728

2829
var loggerConfig = new LoggerConfiguration()
29-
.FilterOutUnwantedLogs()
30+
.FilterOutUnwantedLogs(suppressAspNetExceptionHandler)
3031
.Enrich
3132
.FromLogContext()
3233
.ConfigureDestinations(builder, logBackend, asyncSinks)
@@ -159,13 +160,35 @@ private static LoggerConfiguration WriteToFile(this LoggerConfiguration loggerCo
159160
return loggerConfig.WriteTo.File(formatter, logPath, rollingInterval: RollingInterval.Day);
160161
}
161162

162-
private static LoggerConfiguration FilterOutUnwantedLogs(this LoggerConfiguration loggerConfig)
163+
private static LoggerConfiguration FilterOutUnwantedLogs(this LoggerConfiguration loggerConfig,
164+
bool suppressAspNetExceptionHandler)
163165
{
164-
return loggerConfig
165-
.Filter
166-
.ByExcluding(IsEfOutboxQuery)
167-
.Filter
168-
.ByExcluding(ShouldDropByPath);
166+
var filteredConfig = loggerConfig
167+
.Filter
168+
.ByExcluding(IsEfOutboxQuery)
169+
.Filter
170+
.ByExcluding(ShouldDropByPath);
171+
if (suppressAspNetExceptionHandler)
172+
{
173+
filteredConfig = filteredConfig
174+
.Filter
175+
.ByExcluding(ShouldDropExceptionHandlerLogs);
176+
}
177+
178+
return filteredConfig;
179+
}
180+
181+
private static bool ShouldDropExceptionHandlerLogs(LogEvent evt)
182+
{
183+
if (!evt.Properties.TryGetValue("SourceContext", out var sc) || sc is not ScalarValue sv)
184+
{
185+
return false;
186+
}
187+
188+
var sourceContext = sv.Value as string ?? "";
189+
190+
return sourceContext.Equals("Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware",
191+
StringComparison.OrdinalIgnoreCase);
169192
}
170193

171194
private static bool ShouldDropByPath(LogEvent evt)

src/SharedKernel/SharedKernel.csproj

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
<PackageReadmeFile>Readme.md</PackageReadmeFile>
99
<Authors>Pandatech</Authors>
1010
<Copyright>MIT</Copyright>
11-
<Version>1.8.4</Version>
11+
<Version>1.8.5</Version>
1212
<PackageId>Pandatech.SharedKernel</PackageId>
1313
<Title>Pandatech Shared Kernel Library</Title>
1414
<PackageTags>Pandatech, shared kernel, library, OpenAPI, Swagger, utilities, scalar</PackageTags>
1515
<Description>Pandatech.SharedKernel provides centralized configurations, utilities, and extensions for ASP.NET Core projects. For more information refere to readme.md document.</Description>
1616
<RepositoryUrl>https://github.com/PandaTechAM/be-lib-sharedkernel</RepositoryUrl>
17-
<PackageReleaseNotes>tag ordering added to open api</PackageReleaseNotes>
17+
<PackageReleaseNotes>logging option to remove duplicate logs</PackageReleaseNotes>
1818
</PropertyGroup>
1919

2020
<ItemGroup>
@@ -39,13 +39,13 @@
3939
<PackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Version="9.0.8"/>
4040
<PackageReference Include="Microsoft.AspNetCore.SignalR.StackExchangeRedis" Version="9.0.8"/>
4141
<PackageReference Include="Microsoft.Extensions.Http.Resilience" Version="9.8.0"/>
42-
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.12.0"/>
42+
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.13.1" />
4343
<PackageReference Include="OpenTelemetry.Exporter.Prometheus.AspNetCore" Version="1.8.0-rc.1"/>
44-
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.12.0"/>
45-
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.12.0"/>
44+
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.13.1" />
45+
<PackageReference Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.13.0" />
4646
<PackageReference Include="OpenTelemetry.Instrumentation.EntityFrameworkCore" Version="1.0.0-beta.12"/>
47-
<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.12.0"/>
48-
<PackageReference Include="OpenTelemetry.Instrumentation.Runtime" Version="1.12.0"/>
47+
<PackageReference Include="OpenTelemetry.Instrumentation.Http" Version="1.13.0" />
48+
<PackageReference Include="OpenTelemetry.Instrumentation.Runtime" Version="1.13.0" />
4949
<PackageReference Include="Pandatech.CommissionCalculator" Version="4.0.1" />
5050
<PackageReference Include="Pandatech.Crypto" Version="6.1.1" />
5151
<PackageReference Include="Pandatech.DistributedCache" Version="4.0.9"/>

test/SharedKernel.Tests/SharedKernel.Tests.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1"/>
13+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.0" />
1414
<PackageReference Include="xunit" Version="2.9.3"/>
15-
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.4">
15+
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">
1616
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1717
<PrivateAssets>all</PrivateAssets>
1818
</PackageReference>

0 commit comments

Comments
 (0)