如果我从 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 中配置时发生的情况