using Microsoft.AspNetCore.Components.Web; using Microsoft.AspNetCore.Components.WebAssembly.Hosting; using MudBlazor.Services; using Serilog; using Serilog.Core; namespace OI.Metrology.Client; internal class Program { private static async Task Main(string[] args) { WebAssemblyHostBuilder builder = WebAssemblyHostBuilder.CreateDefault(args); LoggingLevelSwitch levelSwitch = new(); LoggerConfiguration loggerConfiguration = new(); string? apiUrl = builder.Configuration["ApiUrl"]; // _ = loggerConfiguration.WriteTo.BrowserConsole(); // _ = loggerConfiguration.MinimumLevel.ControlledBy(levelSwitch); // _ = loggerConfiguration.Enrich.WithProperty("InstanceId", Guid.NewGuid().ToString("n")); // _ = loggerConfiguration.WriteTo.BrowserHttp($"{apiUrl}ingest", controlLevelSwitch: levelSwitch); Log.Logger = loggerConfiguration.CreateLogger(); Serilog.ILogger log = Log.ForContext(); try { if (apiUrl is null) throw new NullReferenceException(nameof(apiUrl)); builder.RootComponents.Add("#app"); builder.RootComponents.Add("head::after"); _ = builder.Services.AddScoped(serviceProvider => new HttpClient { BaseAddress = new Uri(apiUrl) }); _ = builder.Services.AddMudServices(); log.Information("Building Web Host"); WebAssemblyHost app = builder.Build(); await app.RunAsync(); } catch (Exception ex) { log.Fatal(ex, "An exception occurred while creating the WASM host"); throw; } } }