Я работаю над проектом. net core 3, для целей отладки я хочу записать сгенерированный SQL из DbContext.SaveChanges () в консоль отладки. Итак, я определил это свойство:
public readonly static ILoggerFactory _loggerFactory = LoggerFactory.Create(builder =>
{
builder.AddFilter("DbLoggerCategory.Database.Command.Name", LogLevel.Debug)
.ClearProviders()
.AddDebug()
.AddEventLog();
});
Затем я связал его с DbContext в методе OnConfiguring
/// <summary>
/// Ties loggerFactory to dbContext
/// </summary>
protected virtual void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseLoggerFactory(_loggerFactory)
.EnableSensitiveDataLogging()
.UseSqlServer(ConnectionString);
}
И я также вызвал OnCofiguring в конструкторе класса
public Db(DbContext dbContext)
{
this.dbContext = dbContext;
DbContextOptionsBuilder optionsBuilder = new DbContextOptionsBuilder();
OnConfiguring(optionsBuilder);
}
Теперь я почти уверен, что делаю какую-то ошибку, потому что не вижу вывод SQL во время отладки.
![This is what I see in debug console](https://i.stack.imgur.com/jwH0K.png)
Я использовал эту старую статью в качестве ссылки https://docs.microsoft.com/en-us/archive/msdn-magazine/2018/october/data-points-logging-sql-and-change-tracking-events-in-ef-core