【问题标题】:How to convert Ilogger<one> to Ilogger<two> in Asp.Net.Core如何在 Asp.Net.Core 中将 Ilogger<one> 转换为 Ilogger<two>
【发布时间】:2023-04-06 12:28:01
【问题描述】:

我有构造函数 One(Ilogger) 和第二个服务 Two(Ilogger) 的服务。在某些情况下,服务一需要创建服务二的实例并执行它。 需要接收到服务定位器的链接,而不是到记录器服务的链接,而不是从记录器服务工厂创建记录器实例或... 将 Ilogger 转换为 Ilogger 的正确方法是什么?

【问题讨论】:

    标签: asp.net-core logging dependency-injection


    【解决方案1】:

    保存到 loggerFactory 的链接

    public Startup(IConfiguration configuration, IWebHostEnvironment env, ILoggerFactory loggerFactory)
    {
        Configuration = configuration;
        Environment = env;
        LoggerFactory = loggerFactory;
    }
    
    public static IConfiguration Configuration { get; set; }
    public static IWebHostEnvironment Environment { get; set; }
    public static ILoggerFactory LoggerFactory { get; set; }
    

    在一班

    Startup.LoggerFactory.CreateLogger<Two>();
    

    【讨论】:

    • 为什么不简单地将ILoggerFactory 注入您的类并创建两个记录器的实例?此外,ILogger&lt;T&gt; 只是ILogger(string name) 的包装。更何况,为什么一个类记录两个?
    猜你喜欢
    • 2018-12-23
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    • 2017-09-17
    • 2022-08-22
    • 1970-01-01
    • 2016-11-10
    • 2020-04-19
    相关资源
    最近更新 更多