Files
Asegasa.NET/WSAsegasa/Program.cs

56 lines
1.9 KiB
C#

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<Configuracion>();
services.AddSingleton(options);
// Solo registrar WindowsService si estamos en Windows
if (OperatingSystem.IsWindows())
{
services.AddWindowsService(config =>
{
config.ServiceName = "WSAsegasa";
});
}
services.AddHostedService<Worker>();
});
}