C# ILogger не печатает вывод консоли - PullRequest
1 голос
/ 09 марта 2020

Я использую vs 2019 для консольного приложения (выполните tnet core 3.1),

Install-Package Microsoft.Extensions.Logging.Console -Version 3.1.2 

и этот код:

using Microsoft.Extensions.Logging;
class Program
{
    static void Main(string[] args)
    {
        var loggerFactory = LoggerFactory.Create(builder =>
        {
            builder
                .AddFilter("Microsoft", LogLevel.Information)
                .AddFilter("System", LogLevel.Information)
                .AddFilter("TestRx.Program", LogLevel.Information)
                .AddConsole();
        });
        ILogger logger = loggerFactory.CreateLogger<Program>();
        logger.LogInformation("Example log message");
    }
}

Он ничего не печатает на консоли, почему?

1 Ответ

1 голос
/ 09 марта 2020

В зависимости от моего хостинга, я мог бы воспроизвести, и, кажется, вам нужно использовать LoggerFactory для вывода на консоль flu sh.

Вероятно, это характеристика производительности более новых версий. NET Core версии. Afaik, старые из них напрямую распечатывали его на консоли.

using (var loggerFactory = LoggerFactory.Create(builder =>
                {  builder.AddConsole(); }) )

            {
                ILogger logger = loggerFactory.CreateLogger<Program>();
                logger.LogInformation("Example log message");

            }

Вы можете наблюдать асин c характер регистрации, создав тонны журналов и либо немного подождать, либо выйти из программы напрямую:

ILogger logger = loggerFactory.CreateLogger<Program>();
            for (int i = 0; i < 1000; i++)
            {
                logger.LogInformation("Example log message2");
            }
            //Thread.Sleep(1000);

Сну поможет грипп sh все логи!

...