小编Ant*_*hin的帖子

在 C# 中使用 DI 登录到控制台

在这个简短的示例中,如果我只保留任何内容,则.AddConsole() 无论ConfigureServices日志级别如何,都不会记录到控制台,但如果我添加.AddConsole().AddDebug()所有消息,则会将所有消息记录到控制台 3 次!我缺少什么?谢谢!

namespace samples
{
    using System;
    using Microsoft.Extensions.DependencyInjection;
    using Microsoft.Extensions.Logging;

    public class Program
    {    
        public static void Main(string[] args)
        {
            var serviceCollection = new ServiceCollection();
            ConfigureServices(serviceCollection);
            var serviceProvider = serviceCollection.BuildServiceProvider();

            var app = serviceProvider.GetService<Application>();
            app.Run();
        }

        private static void ConfigureServices(IServiceCollection services)
        {
            // Add Logger
            services.AddLogging(configure => configure.AddConsole().AddDebug());

            // Register Application
            services.AddTransient<Application>();
        }
    }

    public class Application {
        private readonly ILogger logger;

        public Application(ILogger<Application> logger)
        {
            this.logger = logger;
            this.logger.LogInformation("In Application::ctor");
        } …
Run Code Online (Sandbox Code Playgroud)

c# logging dependency-injection

6
推荐指数
1
解决办法
4964
查看次数

标签 统计

c# ×1

dependency-injection ×1

logging ×1