entity-framework – 抑制在Entity Framework核心中登录的SQL查
发布时间:2020-12-12 06:30:27 所属栏目:MsSql教程 来源:网络整理
导读:我有一个使用实体框架核心的控制台.net核心应用程序. 该应用程序使用日志框架写入文件和控制台: serviceProvider = new ServiceCollection() .AddLogging() .AddDbContextDataStoreContext(options = options.UseSqlServer(Configuration.GetConnectionStrin
我有一个使用实体框架核心的控制台.net核心应用程序.
该应用程序使用日志框架写入文件和控制台: serviceProvider = new ServiceCollection() .AddLogging() .AddDbContext<DataStoreContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))) .BuildServiceProvider(); //configure console logging serviceProvider.GetService<ILoggerFactory>() .AddConsole(LogLevel.Debug) .AddSerilog(); Log.Logger = new LoggerConfiguration() .MinimumLevel.Information() .WriteTo.RollingFile(Path.Combine(Directory.GetCurrentDirectory(),"logs/vcibot-{Date}.txt")) .WriteTo.RollingFile(Path.Combine(Directory.GetCurrentDirectory(),"logs/vcibot-errors-{Date}.txt"),LogEventLevel.Error) .CreateLogger(); logger = serviceProvider.GetService<ILoggerFactory>() .CreateLogger<Program>(); 文件输出的最低级别设置为“信息”.但是这个设置输出也包含SQL查询,这里是一个例子:
有没有办法禁用SQL查询日志记录(仅在调试日志级别记录它们) 解决方法如果您使用的是内置记录器,则可以在Program.cs中为ILoggingBuilder添加过滤器.所以,它看起来像: WebHost.CreateDefaultBuilder(args) // ... .ConfigureLogging((context,logging) => { var env = context.HostingEnvironment; var config = context.Configuration.GetSection("Logging"); // ... logging.AddConfiguration(config); logging.AddConsole(); // ... logging.AddFilter("Microsoft.EntityFrameworkCore.Database.Command",LogLevel.Warning); }) // ... .UseStartup<Startup>() .Build(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |