首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将ILogger<T>注入只需要ILogger的构造函数

将ILogger<T>注入只需要ILogger的构造函数
EN

Stack Overflow用户
提问于 2022-08-09 07:10:47
回答 1查看 293关注 0票数 2

这类似于How to inject named logger generic ILogger as ILogger into constructor using IServiceCollection and NLog

然而,我正在寻找一个使用Serilog + Autofac的解决方案。

希望有一个同时适用于ASP.net核心6和控制台.NET 6的解决方案

通常,MEL ILogger是这样使用的:

代码语言:javascript
复制
public class MyClass
{
  private readonly ILogger _logger;

  public MyClass(ILogger<MyClass> logger) 
  {
    _logger = logger;
    _logger.LogInformation("Constructor");
  }
}

手动在任何地方输入ILogger<MyClass> (如ILogger<MyOtherClass>ILogger<YetAnotherClass> )都很繁琐。

是否有一种方法可以省略<MyClass>部分,但实际上可以像下面这样接收ILogger<MyClass>?(显然在How to inject named logger generic ILogger as ILogger into constructor using IServiceCollection and NLog中,发问者声称有一个使用Autofac的解决方案,但我没有足够的声誉在评论中问他)

代码语言:javascript
复制
public class MyClass
{
  private readonly ILogger _logger;

//public MyClass(ILogger<MyClass> logger)
  public MyClass(ILogger logger) // <<<<< notice that ILogger is used, instead of ILogger<T>
  {
    _logger = logger;
    _logger.LogInformation("Constructor");
  }
}

提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2022-08-21 21:56:58

我想我的nuget套餐正是你要找的:

在这里,您可以了解如何使用它:

https://github.com/gcsizmadia/EgonsoftHU.Extensions.Logging.Serilog.Autofac

您可以从这里下载:

https://www.nuget.org/packages/EgonsoftHU.Extensions.Logging.Serilog.Autofac

我还有一个用于Microsoft Logging + Autofac的nuget包,用于同样的目的(即省略泛型类型参数):

https://github.com/gcsizmadia/EgonsoftHU.Extensions.Logging.Autofac

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73287772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档