56 lines
1.9 KiB
C#
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>();
|
|
});
|
|
}
|