WPF】EntityframeworkCore NLog出力设置
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