Спасибо за комментарии и ответы.Проблема здесь была между моими ушами.Код, который я первоначально разместил в моем вопросе, работает;он записывает необработанный SQL в окно вывода отладки для запросов Entity SQL.
На самом деле, гораздо меньше требуется, если приложение использует ядро asp.net (что делает это приложение веб-API).По умолчанию Visual Studio 2017 вставляет следующий бит кода в Program.cs как часть шаблона проекта:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
При вызове CreateDefaultBuilder добавляются 3 типа ведения журнала - Console, Debug, EventSource - итакже извлекает раздел «Ведение журнала» из appsettings.json.Материал «LoggerFactory» в моем исходном вопросе является избыточным и не нужен.
Код, с которым я тестировал и с которым не работал, в то время как он использовал контекст базы данных, выполнял хранимую процедуру с использованием System.Data.Common.DbCommand, который не передает информацию регистратору, подключенному к DbContext.Мне нужно вручную регистрировать SQL-операторы System.Data.Common.DbCommand (это также необходимо в .Net Framework, но прошло столько лет с тех пор, как я коснулся этого, что я забыл).
КогдаЯ создал DbSet в своем DbContext и сделал выбор против него, используя Entity SQL, например:
var log = _myContext.Log.FirstOrDefault(o => o.Id > 0);
, это успешно записывает необработанный SQL в мое окно вывода отладки, например:
Microsoft.EntityFrameworkCore.Database.Command:Information:
Executed DbCommand (6ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT TOP(1) [o].[Id], [o].[Browser], [o].[Client], [o].[Date], [o].[Exception],
[o].[Host], [o].[Level], [o].[Logger], [o].[Message], [o].[StackTrace], [o].[Thread],
[o].[User]
FROM [Log] AS [o]
WHERE [o].[Id] > 0