在ASP.NET 5.0中,我们现在可以定义一个工厂方法来控制Startup类的激活。
在 Microsoft 提供的演示示例中,他们创建了一个记录器,然后将其传递到 Startup 类中:
public class Program
{
public static async Task Main(string[] args)
{
var logger = CreateLogger(); // <--- HERE !!!!
var host = Host.CreateDefaultBuilder()
.ConfigureWebHost(builder =>
{
builder.UseStartup(context => new Startup(logger)); // Logger passed into the ctor
})
.Build();
await host.RunAsync();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我不确定作者如何创建 Logger(即该方法中的代码),希望它是一个ILogger.
但是,我不确定作者如何创建 Logger(即该方法中的代码),希望它是一个
ILogger.
和往常一样(幸运的是)。首先,创建并配置一个记录器工厂:
var loggerFactory = LoggerFactory.Create(builder => { /*configure*/ });
Run Code Online (Sandbox Code Playgroud)
然后,从中获取一个记录器:
var startupLogger = loggerFactory.CreateLogger<Startup>();
Run Code Online (Sandbox Code Playgroud)
上面只是一种方法,还有多种方法,既有内置的,也有使用多个第三方日志框架的。请阅读.NET Core 和 ASP.NET Core 中的日志记录主文档来了解更多信息。