我对如何使用asp.net core 2和EntityFrameworkCore 2记录生成的SQL以及正确的方法感到困惑。
从MS文档中读取此link后,我说应该使用startup.cs
在.UseLoggerFactory(<LoggerFactory>)
的服务配置中添加。
然而,这似乎已经过时,因为当我想要添加记录器时,我得到了这条消息;
有人可以告诉我添加记录器以记录SQL以进行调试的最佳方法吗?
我还计划使用Nlog继续我的所有日志记录而不是内置日志记录工具,我假设方法(因为注入了Nlog loggerfactory而不是默认的MS实例),因为这将是相同的或是否有任何配置差异(关于使用NLog)?
答案 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); });
}