简体   繁体   English

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

[英]Logging in console application (.NET Core with DI)

guys.伙计们。 I try to add logging to my console app with DI (.NET Core 3.1) and seems that IoC container works fine for that, injects logger dependency to my classes, but LogXXX method doesn't log to output.我尝试使用 DI(.NET Core 3.1)将日志记录添加到我的控制台应用程序,似乎 IoC 容器可以正常工作,将记录器依赖项注入我的类,但 LogXXX 方法不会记录到输出。 What can be the reason?原因是什么? Maybe there are some additional configurations?也许还有一些额外的配置?

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();
            });
        }
    }
}

Docs have current example for Console App 文档有控制台应用程序的当前示例

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");
    }
}

Of course you need to install the appropriate Nuget packages:当然你需要安装合适的 Nuget 包:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM