Sto usando EF Core 2.1.1 usando MySql e ho il seguente codice per abilitare la registrazione del core ef tradotto in query SQL
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.EnableSensitiveDataLogging();
}
Non vedo nulla nei registri e non so perché.
Utilizzando EF Core 2.2 con Visual Studio 2019 e SQL Server, sono stato in grado di far funzionare l'opzione EnableSensitiveDataLogging utilizzando la seguente configurazione.
Nella tua classe Startup.cs,
Aggiungi il servizio di registrazione al tuo metodo ConfigureServices. Sto filtrando la registrazione ai comandi del database e il livello di registrazione delle informazioni,
services.AddLogging(loggingBuilder => {
loggingBuilder.AddConsole()
.AddFilter(DbLoggerCategory.Database.Command.Name, LogLevel.Information);
loggingBuilder.AddDebug();
});
Ora aggiorna DBContext per abilitare la registrazione dei dati sensibili,
services.AddDbContext<MyDbContext>(options => {
options.UseSqlServer(_configuration.GetConnectionString("MyDbConnection"));
options.EnableSensitiveDataLogging(true);
});
Dopo aver configurato l'avvio, ora vedrai i comandi SQL e i loro dati sensibili comparire nella nostra finestra Output in Visual Studio (Debug ... Windows ... Output) come mostrato di seguito,
Microsoft.EntityFrameworkCore.Database.Command:Information: Executed DbCommand (3ms)
[Parameters=[@p1='aaa' (Nullable = false) (Size = 450),
@p2='bbb' (Size = 4000),
@p0='New Column Value' (Size = 4000)],
CommandType='Text', CommandTimeout='30']
SET NOCOUNT ON;
UPDATE [MyTableName] SET [MyColumnName] = @p0
WHERE [Id] = @p1 AND [OtherColumn] = @p2;
SELECT @@ROWCOUNT;
Mi ci è voluto un po 'anche per capirlo. Non è stato possibile visualizzare i dati sensibili nel registro utilizzando OnConfiguring nella classe DBContext.
Spero che questo aiuti anche se utilizza SQL Server e non MySQL.
NOTA! Assicurarsi di disabilitare la registrazione dei dati sensibili durante la distribuzione in produzione.