Запись логов в консоли в консольном приложении. NET Framework 4.6 - PullRequest
0 голосов
/ 29 февраля 2020

Я пробовал много способов, но мне не удалось записать логи в консоль моего консольного приложения. NET Framework 4.6. Я искал в Stackoverflow и нашел 2 возможных решения, которые не работали:

  1. Регистрация в ConfigureDI как

    services.AddLogging (configure => configure.AddConsole ());

Это первое возможное решение, которое я даже не смог протестировать, так как

ILoggingBuilder не содержит определения для AddConsole [...]

Регистрация в ConfigureDI как

services.AddSingleton (); services.AddSingleton (typeof (ILogger <>), typeof (Logger <>));

Я использую ILogger с внедрением зависимостей, например:

public class MyApplication
    {
        private readonly ILogger<MyService> _logger;
        public MyApplication(ILogger<MyService> logger)
        {
            _logger = logger;

        }
        public void Run()
        {    
            _logger.LogInformation("Application Started at {dateTime}", DateTime.UtcNow);             
             //...
        }
    }

Мой Program.cs такой:

public static class Program
    {

        public static void Main(string[] args)
        {
            var services = new ServiceCollection();

            DependencyInjectionConfiguration.ConfigureDI(services);

            var serviceProvider = services.BuildServiceProvider();

            var receiver = serviceProvider.GetService<IReceiver>();

            receiver.MyServiceMethod();
        }
    }

, а мой метод ConfigureDI такой:

public static class DependencyInjectionConfiguration
    {
        public static void ConfigureDI(IServiceCollection services)
        {
            services.AddScoped<IReceiver, Receiver>();
            services.AddHttpClient<MyClient>();
            services.AddScoped<HelperXml>();
            //services.AddSingleton<ILoggerFactory, LoggerFactory>();
            //services.AddSingleton(typeof(ILogger<>), typeof(Logger<>));
            //services.AddLogging(configure => configure.AddConsole());
        }
    }

Кто-нибудь знает, что здесь не так? Кроме того: было бы неплохо писать в текстовый файл ...

Спасибо

...