Я пробовал много способов, но мне не удалось записать логи в консоль моего консольного приложения. NET Framework 4.6. Я искал в Stackoverflow и нашел 2 возможных решения, которые не работали:
- Регистрация в 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());
}
}
Кто-нибудь знает, что здесь не так? Кроме того: было бы неплохо писать в текстовый файл ...
Спасибо