using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Serilog; using StellaOps.Zastava.Agent.Worker; Log.Logger = new LoggerConfiguration() .Enrich.FromLogContext() .WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}") .CreateBootstrapLogger(); try { Log.Information("Starting Zastava Agent..."); var builder = Host.CreateApplicationBuilder(args); builder.Services.AddSerilog((services, loggerConfiguration) => { loggerConfiguration .ReadFrom.Configuration(builder.Configuration) .Enrich.FromLogContext() .WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}"); }); builder.Services.AddZastavaAgent(builder.Configuration); var host = builder.Build(); await host.RunAsync(); } catch (Exception ex) { Log.Fatal(ex, "Zastava Agent terminated unexpectedly"); return 1; } finally { await Log.CloseAndFlushAsync(); } return 0;