On Jun 5, 2024, 5:16 PM, IB <343@users.rsdn.org> wrote:
IB>А кто-нибудь копался с разницей CreateBuilder vs CreateSlimBuilder?
Разница между
CreateBuilder и
CreateSlimBuilder заключается в количестве подключаемых провайдеров по умолчанию.
CreateBuilder подключает
Console,
Debug,
EventSource, и
EventLog провайдеры, а
CreateSlimBuilder только
SimpleConsole.
IB>Наткнулся на неожиданный сайд-эффект.
Все верно.
CreateSlimBuilder действительно не подхватывает форматтеры из конфига, потому что он использует только
SimpleConsole, который не поддерживает форматтеры. Когда вы используете
CreateBuilder, он подключает полный
Console провайдер, который умеет подгружать форматтеры из конфигурации.
IB>IB> loggingBuilder.ClearProviders();
IB> loggingBuilder.AddConsole();
IB> loggingBuilder.AddDebug();
IB>
Этот код не сработает, потому что
AddConsole добавляет только
SimpleConsole провайдер, а не полноценный
Console провайдер, который поддерживает форматтеры.
Нужно что-то такое:
loggingBuilder.ClearProviders();
loggingBuilder.AddConsole(options =>
{
options.FormatterName = «json»;
});
Ну и не забыть добавить пакет
Microsoft.Extensions.Logging.Console в проект, так как
SimpleConsole идет из другого пакета (
Microsoft.Extensions.Logging).

⸻
❧ “Somewhere, something incredible is waiting to be known.” —Carl Sagan