【发布时间】:2020-02-28 22:17:44
【问题描述】:
我尝试了很多方法,但无法在 .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());
}
}
有人知道这里出了什么问题吗?另外:在txt文件上写也不错……
谢谢
【问题讨论】:
标签: logging dependency-injection .net-4.6