使用EF Core 2和Nlog

时间:2018-04-11 05:36:44

标签: c# asp.net-core entity-framework-core nlog

我对如何使用asp.net core 2和EntityFrameworkCore 2记录生成的SQL以及正确的方法感到困惑。

从MS文档中读取此link后,我说应该使用startup.cs.UseLoggerFactory(<LoggerFactory>)的服务配置中添加。

然而,这似乎已经过时,因为当我想要添加记录器时,我得到了这条消息;

Visual Studio 2017 Message for UseLoggerFactory

有人可以告诉我添加记录器以记录SQL以进行调试的最佳方法吗?

我还计划使用Nlog继续我的所有日​​志记录而不是内置日志记录工具,我假设方法(因为注入了Nlog loggerfactory而不是默认的MS实例),因为这将是相同的或是否有任何配置差异(关于使用NLog)?

1 个答案:

答案 0 :(得分:2)

首先按照official docs

中的说明注册NLog。

然后在您的ILoggerFactory类中注入Startup

private readonly ILoggerFactory _factory;
public Startup(IHostingEnvironment env, ILoggerFactory factory)
{ 
     _factory = factory ?? throw new ArgumentNullException(nameof(factory)); 
}

最后将工厂链接为记录器工厂,以用于DbContext

public void ConfigureServices(IServiceCollection services)
{
     services.AddDbContext<YourContext>(options => { options.UseLoggerFactory(_factory); });
}

EF Core语句现在使用NLog记录 enter image description here