2017-09-25 1 views
2

Nach dem Upgrade auf asp.net + Entity Framework Core 2 habe ich etwas seltsam bemerkt. Bevor (in 1.1), musste ich DbContextOptionsBuilder.UseLoggerFactory verwenden, um SQL-Abfragen zu protokollieren, die von Ef erstellt wurden, aber jetzt muss ich es nicht mehr tun, SQL-Abfragen werden standardmäßig protokolliert.Entity Framework Core 2 SQL wird immer protokolliert

Die Logger Fabrik wird auf "Information"

loggerFactory.AddFile("Logs/MyApp-{Hour}.txt", LogLevel.Information); 

Sollten nicht von SQL-Abfragen mit Debug in Verbindung gebracht werden? Es ist normal? Gibt es eine Möglichkeit, die Protokollierungsstufe Information beizubehalten und nur die SQL-Protokollierung zu deaktivieren?

+0

das scheint mir seltsam. Wo werden die SQL-Abfragen standardmäßig protokolliert? – JasonlPrice

Antwort

1

fand ich, dass Entity Framework aus sollte SQL in „Information“ anmelden änderte ich den loggerFactory zu

loggerFactory.AddFile("Logs/MyApp-{Hour}.txt", LogLevel.Information, new Dictionary<string, LogLevel>() 
      { 
       { "Microsoft", LogLevel.Error }, 
       { "System", LogLevel.Error } 
      }); 

Damit alles mit „Microsoft“ oder „System“ in dem Namensraum ist würde nur Fehler protokollieren (oder irgendetwas darüber)

Verwandte Themen