Re: CreateSlimBuilder и ILogger
От: r0nd  
Дата: 05.06.24 22:06
Оценка: 42 (1)
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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.