登录控制台应用程序(带有DI的.NET Core)



伙计们。我试图用DI(.NET Core 3.1(将日志记录添加到我的控制台应用程序中,似乎IoC容器对此很好,将记录器依赖性注入到我的类中,但LogXXX方法不记录到输出。原因是什么?也许还有一些额外的配置?

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
namespace DependencyInjection
{
class Program
{
static void Main(string[] args)
{
var services = new ServiceCollection();
ConfigureServices(services);
var serviceProvider = services.BuildServiceProvider();
var logger = serviceProvider.GetService<ILogger<Program>>();
logger.LogInformation("Hello world!");
}
static void ConfigureServices(ServiceCollection services)
{
services.AddLogging(loggerBuilder =>
{
loggerBuilder.ClearProviders();
loggerBuilder.AddConsole();
});
}
}
}

文档有控制台应用程序的当前示例

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

当然,您需要安装适当的Nuget软件包:

  • Microsoft.Extensions.Logging
  • Microsoft.Extensions.Logging.Console

最新更新