.net core 已經集成的各種日志功能,使用efcore時,只需要按情況引入相應的包即可,如果你用的是.net core調試,那么可以引入 Microsoft.Extensions.Logging 這類包中的Microsoft.Extensions.Logging.Console 包,若是想在調試窗口看到ef core 執行的語句,可以 換成 Microsoft.Extensions.Logging.Debug,不過一般來講,因為使用的是.net core,在控制台上輸出更有意義,可以在運行時作診斷,要顯示ef core執行的語句需要下面的步驟:
微軟的作法:
1.在dbcontext類上面添加靜態方法:
//輸出到debug輸出
public static readonly LoggerFactory LoggerFactory =
new LoggerFactory(new[] { new DebugLoggerProvider((_, __) => true) });
// 輸出到Console
public static readonly LoggerFactory LoggerFactory =
new LoggerFactory(new[] { new ConsoleLoggerProvider((_, __) => true,true) });
2.然后再添加類中實例方法重寫
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
optionsBuilder.UseLoggerFactory(LoggerFactory);
}
這樣就可以在VS的輸出窗口里面看到ef core執行時打出的日志了,包括所有執行的sql語句
如下
附微軟的官方文檔 Docs.Microsoft