using Serilog; namespace Nocr.Users.Host.Infrastructure; public class HostBuilderFactory where TStartup : class { public IHostBuilder CreateHostBuilder(string[] args, string? baseDirectory = null) { var builder = Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder(args) .ConfigureAppConfiguration((_, configurationBuilder) => { if (!string.IsNullOrWhiteSpace(baseDirectory)) configurationBuilder.SetBasePath(baseDirectory); configurationBuilder.AddJsonFile("appsettings.protected.json", false); }) .ConfigureWebHostDefaults(host => { host.UseStartup(); }) .UseSerilog((ctx, logBuilder) => { logBuilder.ReadFrom.Configuration(ctx.Configuration) .Enrich.FromLogContext(); }); return builder; } }