如果我从 Startup.cs 而不是 Program.cs 注入 Serilog 是不是不好的做法?
Is it bad practice if I inject Serilog from Startup.cs and not from Program.cs?
我正在尝试在 .NET 5 WebApi 项目中配置 Serilog。
我不明白为什么每个人都在 Program.cs
中注入 Serilog,而不是像这样在 Startup.cs
文件中注入:
public void ConfigureServices(IServiceCollection services)
{
// inject serilog logger.
services.AddScoped<ILogger>(factory =>
{
return new LoggerConfiguration()
.WriteTo.File(@"C:\mylogs\log.txt", rollingInterval: RollingInterval.Day)
.CreateLogger();
});
services.AddControllers();
}
如果您在 DI 中注册 Logger
而不是配置 ILoggerFactory
,则无法保证您的所有依赖项都将使用您在 startup.cs
中注册的依赖项。
在下面的问题中,这正是 OP 在 startup.cs
中配置时发生的情况
我正在尝试在 .NET 5 WebApi 项目中配置 Serilog。
我不明白为什么每个人都在 Program.cs
中注入 Serilog,而不是像这样在 Startup.cs
文件中注入:
public void ConfigureServices(IServiceCollection services)
{
// inject serilog logger.
services.AddScoped<ILogger>(factory =>
{
return new LoggerConfiguration()
.WriteTo.File(@"C:\mylogs\log.txt", rollingInterval: RollingInterval.Day)
.CreateLogger();
});
services.AddControllers();
}
如果您在 DI 中注册 Logger
而不是配置 ILoggerFactory
,则无法保证您的所有依赖项都将使用您在 startup.cs
中注册的依赖项。
在下面的问题中,这正是 OP 在 startup.cs
中配置时发生的情况