c# - 始终记录 Entity Framework 核心 2 SQL

标签 c# asp.net entity-framework

升级到 asp.net + Entity Framework 核心 2 后,我发现了一些奇怪的东西。 之前(在 1.1 中),我必须使用 DbContextOptionsBuilder.UseLoggerFactory 来记录由 ef 生成的 SQL 查询,但现在,我不必再这样做了,默认情况下会记录 SQL 查询。

记录器工厂设置为“信息”

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

SQL 查询不应该与 Debug 相关联吗?正常吗?有没有办法保持日志记录级别信息并仅禁用 SQL 日志记录?

最佳答案

我发现 Entity Framework 应该在“信息”中记录 SQL 我将 loggerFactory 更改为

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

这样命名空间中带有“Microsoft”或“System”的所有内容都将仅记录错误(或以上任何内容)

关于c# - 始终记录 Entity Framework 核心 2 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46400026/

相关文章:

c# - 如何使用 NewtonSoft Json.Net 将 Json 字典反序列化为平面类

c# - 如何使用 addHandler 引发事件

javascript - 选择列表项值不适用于 Javascript asp mvc

c# - 如何在数据表 c# asp.net 中同时检查第一行、第二行和第三行?

c# - Entity Framework where、order 和 group

c# - .net-core 依赖注入(inject)

c# - 将 UWP 库加载到 .NET Framework 应用中

entity-framework - Entity Framework 合并选项不跟踪不良性能

c# - 在 ASP.NET 中单击按钮获取 Gridview 隐藏字段值

entity-framework - Entity Framework Code First - 可以映射现有表并将其设置为只读吗?