Skip to content

Commit 51d769b

Browse files
committed
Disable "LoggingCacheTime" during tests so the LogLevel can be changed freely.
1 parent 8e3e867 commit 51d769b

File tree

5 files changed

+24
-4
lines changed

5 files changed

+24
-4
lines changed

src/Thinktecture.EntityFrameworkCore.SqlServer.Testing/EntityFrameworkCore/Testing/SqlServerTestDbContextProviderBuilder.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,8 @@ protected virtual DbContextOptionsBuilder<T> CreateOptionsBuilder(
262262
.UseLoggerFactory(loggingOptions.LoggerFactory)
263263
.EnableSensitiveDataLogging(loggingOptions.EnableSensitiveDataLogging);
264264

265+
DisableLoggingCacheTime(builder);
266+
265267
if (_disableModelCache)
266268
builder.ReplaceService<IModelCacheKeyFactory, CachePerContextModelCacheKeyFactory>();
267269

src/Thinktecture.EntityFrameworkCore.Sqlite.Testing/EntityFrameworkCore/Testing/SqliteTestDbContextProviderBuilder.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,8 @@ protected virtual DbContextOptionsBuilder<T> CreateOptionsBuilder(
210210
.UseLoggerFactory(loggingOptions.LoggerFactory)
211211
.EnableSensitiveDataLogging(loggingOptions.EnableSensitiveDataLogging);
212212

213+
DisableLoggingCacheTime(builder);
214+
213215
if (_disableModelCache)
214216
builder.ReplaceService<IModelCacheKeyFactory, CachePerContextModelCacheKeyFactory>();
215217

src/Thinktecture.EntityFrameworkCore.Testing/EntityFrameworkCore/Testing/TestDbContextProviderBuilder.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using Microsoft.EntityFrameworkCore.Infrastructure;
12
using Microsoft.Extensions.Logging;
23
using Serilog;
34
using Thinktecture.Logging;
@@ -65,6 +66,15 @@ protected void UseMigrationLogLevel(LogLevel logLevel)
6566
_migrationLogLevel = logLevel;
6667
}
6768

69+
/// <summary>
70+
/// Disables "LoggingCacheTime" of EF which is required to be able to change the <see cref="LogLevel"/> at will.
71+
/// </summary>
72+
/// <param name="builder">Builder.</param>
73+
protected virtual void DisableLoggingCacheTime(DbContextOptionsBuilder builder)
74+
{
75+
builder.AddOrUpdateExtension<CoreOptionsExtension>(extension => extension.WithLoggingCacheTime(TimeSpan.Zero));
76+
}
77+
6878
/// <summary>
6979
/// Creates logging options.
7080
/// </summary>

src/Thinktecture.EntityFrameworkCore.Testing/Logging/TestingLoggingOptions.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using Microsoft.Extensions.DependencyInjection;
12
using Microsoft.Extensions.Logging;
23
using Serilog;
34
using Serilog.Extensions.Logging;
@@ -77,11 +78,13 @@ public static TestingLoggingOptions Create(
7778
builder.AddProvider(new SubLoggerFactory(loggerFactory));
7879

7980
if (serilogLogger is not null)
80-
{
8181
builder.AddSerilog(serilogLogger);
82-
builder.AddFilter<SerilogLoggerProvider>(null, level => level >= logLevelSwitch.MinimumLogLevel);
83-
}
8482

83+
builder.Services.Configure<LoggerFilterOptions>(options =>
84+
{
85+
options.MinLevel = LogLevel.Trace;
86+
options.Rules.Clear();
87+
});
8588
builder.AddFilter(level => level >= logLevelSwitch.MinimumLogLevel);
8689
});
8790

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<ItemGroup>
4-
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="6.0.1" />
54
<PackageReference Include="Serilog.Extensions.Logging" Version="3.1.0" />
65
<PackageReference Include="Serilog.Sinks.XUnit" Version="3.0.3" />
76
</ItemGroup>
87

8+
<ItemGroup>
9+
<ProjectReference Include="..\Thinktecture.EntityFrameworkCore.Relational\Thinktecture.EntityFrameworkCore.Relational.csproj" />
10+
</ItemGroup>
11+
912
</Project>

0 commit comments

Comments
 (0)