Я создаю консольное приложение. Net Core 3.1 и хочу использовать сборку при ведении журнала консоли. Существует множество статей о. net журналировании, но я не смог найти образец, который действительно записывает в консоль.
namespace test
{
class Program
{
static void Main(string[] args)
{
var serviceProvider = new ServiceCollection()
.AddLogging(config => config.ClearProviders().AddConsole().SetMinimumLevel(LogLevel.Trace))
.BuildServiceProvider();
//configure console logging
serviceProvider
.GetService<ILoggerFactory>();
var logger = serviceProvider.GetService<ILoggerFactory>()
.CreateLogger<Program>();
logger.LogDebug("All done!");
Console.Write("Yup");
}
}
Он компилируется и запускается, и даже пишет «Ага» в консоль, но с надписью "Все готово!" не отображается. Вывод в окне консоли:
Это мой образец структуры проекта:
Что мне не хватает?
Это было избавление от услуг: Исправление благодаря Джереми Лейкману:
static void Main(string[] args)
{
using (var serviceProvider = new ServiceCollection()
.AddLogging(config => config.ClearProviders().AddConsole().SetMinimumLevel(LogLevel.Trace))
.BuildServiceProvider())
{
//configure console logging
serviceProvider
.GetService<ILoggerFactory>();
var logger = serviceProvider.GetService<ILoggerFactory>()
.CreateLogger<Program>();
// run app logic
logger.LogDebug("All done!");
}
Console.Write("Yup");
}