Получить текст запроса NpgSql Entity Framework - PullRequest
0 голосов
/ 16 февраля 2019

Я использую Npgsql.EntityFrameworkCore.PostgreSQL 2.2.0.Я хочу видеть запрос, который будет выполнен в базе данных.Есть ли способ сделать это?

1 Ответ

0 голосов
/ 16 февраля 2019

Обычно нет необходимости настраивать LoggerFactory специально, если вы используете .AddDbContext или .AddDbContextPool при регистрации службы.EF Core автоматически захватывает существующую фабрику логгеров (настроенную) и использует журнал уровня отладки для регистрации запросов.

Вы также можете включить

builder.EnableSensitiveDataLogging();  // << Enables query parameter/value logging
builder.EnableDetailedErrors(); // << Enables Detailed Errors such as parameter mapping errors
builder.ConfigureWarnings(warnings => 
    warnings.Log(CoreEventId.IncludeIgnoredWarning));  << Includes ignored warnings

Единственное, что вам нужно сделать, это соответственно изменить уровень ведения журнала

"Logging": {
  "LogLevel": {
    ....
    "Microsoft.EntityFrameworkCore.Database.Command": "Information"
  }
}

, или вы можете использовать Custom logger factory

public static readonly LoggerFactory MyLoggerFactory
    = new LoggerFactory(new[]
    {
        new ConsoleLoggerProvider((category, level)
            => category == DbLoggerCategory.Database.Command.Name
               && level == LogLevel.Information, true)
    });
...