生成されたSQLをasp.netコア2とEntityFrameworkCore2でログに記録する方法と、それを実行する正しい方法に少し混乱しています。
MSドキュメントからthis link を読んだ後、.UseLoggerFactory(<LoggerFactory>)
を使用してstartup.cs
のサービス構成中に追加する必要があると言っています。
ただし、ロガーを追加しようとするとこのメッセージが表示されるため、これは古くなっているようです。
デバッグ目的でSQLをログに記録するロガーを追加する最良の方法を誰かに教えてもらえますか?
また、組み込みのロギング機能ではなく、今後すべてのロギングにNlogを使用する予定です。これに対するアプローチ(デフォルトのMSインスタンスの代わりにNlog loggerfactoryが注入される)は同じであるか、何かありますか。構成の違い(NLogの使用に関して)?
公式ドキュメント の説明に従って、最初に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); });
}