Vorrei utilizzare NLog per registrare le query SQL da Entity Framework Core in un modo simile a WebApi Core. Come posso impostarlo?
Per accedere con Entity Framework Core ci sono alcuni documenti qui .
Hai bisogno di questo: (vedi i documenti)
public static readonly LoggerFactory MyLoggerFactory
= new LoggerFactory(new[] {new ConsoleLoggerProvider((_, __) => true, true)});
e utilizzare NLogLoggerProvider
invece di ConsoleLoggerProvider
, da questo pacchetto: https://www.nuget.org/packages/NLog.Extensions.Logging
e qualcosa del genere:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder
.UseLoggerFactory(MyLoggerFactory) // Warning: Do not create a new ILoggerFactory instance each time
.UseSqlServer(
@"Server=(localdb)\mssqllocaldb;Database=EFLogging;Trusted_Connection=True;ConnectRetryCount=0");
inoltre devi caricare il tuo file di configurazione NLog:
NLog.LogManager.LoadConfiguration("nlog.config");
Ovviamente hai bisogno di una configurazione nlog (nlog.config o potrebbe essere in C #), controlla https://github.com/NLog/NLog/wiki/Configuration-file per quello.
Aggiornamento: funziona bene secondo i commenti :)