【发布时间】:2021-02-21 16:37:56
【问题描述】:
我开始使用Serilog,但我不知道如何将 ILogger 依赖注入到我的类中。如果我使用的是 ASP.NET Core 5,这很容易,但我使用的是 .NET Core 控制台应用程序。我该如何做类似的事情?
在使用 log4net 之前:
public class TestStrategy
{
private static readonly ILog _logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType.Name);
...
}
我的 Serilog 记录器创建:
var configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();
var logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.CreateLogger();
我必须 DI logger 进入所有课程吗?
【问题讨论】:
-
你需要使用依赖注入框架。 ASP.NET Core 恰好有一个内置系统
-
@Xerillio,但 .NET 控制台应用程序中没有。
-
没错。所以你需要在你的项目中添加一个 DI 框架(CastleWindsor、Ninject、Spring.NET、Autofac...)
-
@Xerillio,Autofac 似乎是最常用的,但我得学习如何去做 rn
-
这不是一个真正的 Serilog 问题。有很多关于如何将 DI 添加到控制台应用程序的问答。
标签: c# .net dependency-injection serilog .net-5