logging - 在 .NET Framework 4.6 控制台应用程序中的控制台中写入日志
问题描述
我尝试了很多方法,但无法在 .NET Framework 4.6 控制台应用程序的控制台中写入日志。我在 Stackoverflow 上进行了搜索,发现了 2 个可能的解决方案,但都不起作用:
- 在 ConfigureDI 中注册为
services.AddLogging(configure => configure.AddConsole());
这第一个可能的解决方案我什至无法测试
ILoggingBuilder 不包含 AddConsole [...]
- 在 ConfigureDI 中注册为
services.AddSingleton<ILoggerFactory, LoggerFactory>(); 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文件上写也不错...
谢谢
解决方案
如果您希望使用 ILogger(Microsoft.Extensions.Logging 的一部分),则需要以.NET Standard框架为目标。
推荐阅读
- here-api - 如何从 Here API 获取历史流量数据
- javascript - mongodb nodejs驱动updateOne没有设置新值
- aws-iot - 将 AWS SQS 订阅到 IoT 主题
- c# - 通过 C# .Net 平台连接到 Confluence 并创建一个新页面
- android - 如果可以的话,从谷歌助手启动我的应用程序
- python - Django OperationalError:没有这样的列:在 pythonanywhere
- android - 刷新令牌时如何发送到服务器?
- ansible - 迭代库存时,Ansible如何将寄存器的输出存储在列表中
- google-apps-script - Google Sheets API - 展开或折叠组会触发事件吗?
- java - 如何让一个Android应用更安全,安全问题。