我正在尝试在 .NET 5 WebApi 项目中配置 Serilog。
我不明白为什么每个人都在 Program.cs
中注入(inject) Serilog,而不是像这样在 Startup.cs
文件中注入(inject):
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.xml 中注册的依赖项。 .cs
.
在下面的问题中,这正是 OP 在 startup.cs
中配置时发生的情况
.Net Core EventLog - override unhandled exception are written to Application log
关于c# - 如果我从 Startup.cs 而不是从 Program.cs 注入(inject) Serilog,这是一种不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67201197/