EFcore,由于不熟悉,经常出现一些异常都不知道如何排查,只能把EFcore的执行记录打印出来调查。确实简化了很多问题的调查。 官网提供了Asp.net Core与.net core 应用的配置,唯独没有WPF等应用的说明。本章作为一个补充,供各位参考。 由于我用的是Prism+PostgreSQL+Nlog,所有这里只讲述EntityframeworkCore的Nlog出力方法。 所需安装包 NLog NLog.Extensions.Logging Npgsql.EntityFrameworkCore.PostgreSQL 依赖注入设置 App.xaml.cs 复制代码 protected override void RegisterTypes(IContainerRegistry containerRegistry) { containerRegistry.RegisterForNavigation(Authentication.LoginURL); containerRegistry.Register(); } 复制代码 NLogLoggerFactory默认会创建一个新的NLogLoggerProvider。 NLog.config配置 这是个人喜欢的配置,仅供参考。 复制代码 复制代码 async="true"非同期更新日志。默认在exe执行文件夹下创建一个Logs文件夹存放日志。 DbContext配置 由于使用了DI,只需要在构造函数里面传入ILoggerFactory就可以。 复制代码 public class PsqlDbContext : DbContext, IDbContext { private readonly ILoggerFactory _factory; public PsqlDbContext(ILoggerFactory loggerFactory) { _factory = loggerFactory; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder .UseLoggerFactory(_factory) .EnableSensitiveDataLogging() .UseNpgsql("ProstgreSqlConnectStringxxxxx"); } 复制代码 这样就设置完成了。 实例截图 执行了那些sql,执行超时时间都一目了然。 每天成就一小步,积累下来就是一大步。 转发本文请注明出处,谢谢您的阅读与分享!https://www.cnblogs.com/lixiaobin/p/postgresqlefcorenlog.html