using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging.Configuration; using Microsoft.Extensions.Logging.EventLog; using Serilog; using System.IO; using System.Reflection; using WSAsegasa; public class Program { public static void Main(string[] args) { Serilog.Debugging.SelfLog.Enable(msg => Console.Error.WriteLine(msg)); bdAsegasa.db.Utilidades.VersionPrograma = tsUtilidades.Utilidades.ExtraeValorCadena(Assembly.GetExecutingAssembly().FullName, "Version"); // Configura Serilog antes de construir el host string path = ""; if (OperatingSystem.IsWindows()) { path = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + @"\WSAsegasa\WSAsegasa.log"; } else { path = @"/var/log/WSAsegasa/WSAsegasa.log"; } Log.Logger = new LoggerConfiguration() .MinimumLevel.Information() .WriteTo.File(path, rollingInterval: RollingInterval.Day) .CreateLogger(); var host = CreateHostBuilder(args).Build(); host.Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { IConfiguration configuration = hostContext.Configuration; Configuracion options = configuration.GetSection("Configuracion").Get(); services.AddSingleton(options); // Solo registrar WindowsService si estamos en Windows if (OperatingSystem.IsWindows()) { services.AddWindowsService(config => { config.ServiceName = "WSAsegasa"; }); } services.AddHostedService(); }); }