[英]Enable DB context logging in .net core with entity framework 2.2
我有一個使用實體框架 2.2 的 dot net core 2.1 控制台應用程序
我想為 DB 上下文啟用日志記錄以查看查詢執行情況。 使用的數據庫是MySql。 我嘗試了其他鏈接,但我沒有得到其中提供的任何解決方案的結果。 請讓我知道使用實體框架版本 2.2 執行此操作的正確方法
假設您使用的是Pomelo.EntityFrameworkCore.MySql
版本2.2.6
(或其他與 EF Core 2.2.6 兼容的提供程序),然后查看以下完全工作的控制台示例應用程序,演示如何使用UseLoggerFactory
、 LoggerFactory
和ConsoleLoggerProvider
一個過濾器:
using System.Diagnostics;
using System.Linq;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Console;
namespace IssueConsoleTemplate
{
public class IceCream
{
public int IceCreamId { get; set; }
public string Name { get; set; }
}
public class Context : DbContext
{
public DbSet<IceCream> IceCreams { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder
.UseMySql(
"server=127.0.0.1;port=3306;user=root;password=;database=So63898775",
b => b.ServerVersion("8.0.20-mysql"))
.UseLoggerFactory(
new LoggerFactory(
new[] {new ConsoleLoggerProvider((_, level) => level >= LogLevel.Information, true)}))
.EnableSensitiveDataLogging()
.EnableDetailedErrors();
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<IceCream>().HasData(
new IceCream {IceCreamId = 1, Name = "Vanilla"},
new IceCream {IceCreamId = 2, Name = "Chocolate"});
}
}
internal static class Program
{
private static void Main()
{
using (var context = new Context())
{
context.Database.EnsureDeleted();
context.Database.EnsureCreated();
var iceCreams = context.IceCreams.ToList();
Debug.Assert(iceCreams.Count == 2);
}
}
}
}
它使用以下csproj
文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<Nullable>disable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="2.2.6"/>
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="2.2.6"/>
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="2.2.0"/>
</ItemGroup>
</Project>
在更高版本中,設置日志記錄的語法已更改。
有關更多信息,請參閱日志記錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.