Mam konsolową aplikację .net core, która wykorzystuje rdzeń struktury encji. Aplikacja wykorzystuje ramy rejestrowania się zapisać do pliku i konsola:Wyłączenie rejestrowania zapytań SQL w rdzeniu Entity Framework
serviceProvider = new ServiceCollection()
.AddLogging()
.AddDbContext<DataStoreContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")))
.BuildServiceProvider();
//configure console logging
serviceProvider.GetService<ILoggerFactory>()
.AddConsole(LogLevel.Debug)
.AddSerilog();
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Information()
.WriteTo.RollingFile(Path.Combine(Directory.GetCurrentDirectory(), "logs/vcibot-{Date}.txt"))
.WriteTo.RollingFile(Path.Combine(Directory.GetCurrentDirectory(), "logs/vcibot-errors-{Date}.txt"), LogEventLevel.Error)
.CreateLogger();
logger = serviceProvider.GetService<ILoggerFactory>()
.CreateLogger<Program>();
Min Level dla pliku wyjściowego jest ustawiony do informacji. Ale z tego wyjście konfiguracja zawiera również zapytań SQL, oto przykład:
2017-02-06 10: 31: 38.282 -08: 00 [Informacje] Zrealizowane DbCommand (0ms) [Parametry = [] CommandType = 'Text', CommandTimeout = '30 '] SELECT [f]. [BuildIdentifier], [f]. [Branch], [f]. [BuildDate], [f]. [StaticAssetSizeInKb] OD [FileSizesHistoryEntries] AS [f]
Czy istnieje sposób, aby wyłączyć zapytań SQL logowaniem (log je tylko poziomu dziennika Debug)
udało mi się wykluczyć całkowicie kontekstowe/źródło: '.Filter.ByExcluding (Matching.FromSource („Microsoft.EntityFrameworkCore.Storage.IRelationalCommandBuilderFactory”))' ale nie wiem jak ustawić minimalny poziom –
Jeśli robisz konfigurację z kodu, powinieneś być w stanie zrobić coś takiego jak 'nowa LoggerConfiguration(). MinimumLevel.Information(). MinimumLevel.Override (" Microsoft.EntityFrameworkCore.Storage.IRelationalCommandBuilderFactory ", LogEventLevel.Warning) ? Zwykle konfiguruję to z Serilog.Settings.Configuration JSON: '{" Serilog ": {" MinimumLevel ": {" Default ":" Information "," Override ": {" Microsoft.EntityFrameworkCore.Storage.IRelationalCommandBuilderFactory ":" Warning " }}}} ' – mdonoughe
Te szczegóły dodały wiele praktycznej wartości do odpowiedzi. Próbowałem go od kodu i działa. Dzięki! Spróbuję później konfiguracji JSON i na pewno jest to preferowany sposób, ponieważ masz kontrolę zewnętrzną nad opcjami rejestrowania. –