You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
3.1 KiB
C#
86 lines
3.1 KiB
C#
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Hosting;
|
|
using SlnMesnac.Config;
|
|
using SlnMesnac.Quartz;
|
|
using TouchSocket.Sockets;
|
|
using SlnMesnac.Extensions;
|
|
using Microsoft.AspNetCore.Hosting;
|
|
using Serilog;
|
|
using Autofac.Extensions.DependencyInjection;
|
|
using SlnMesnac.Serilog;
|
|
|
|
namespace ConsoleApp
|
|
{
|
|
internal class Program
|
|
{
|
|
private static SerilogHelper? serilogHelper;
|
|
static void Main(string[] args)
|
|
{
|
|
try
|
|
{
|
|
Thread.CurrentThread.Name = "Main";
|
|
Console.ForegroundColor = ConsoleColor.Yellow;
|
|
AppDomain.CurrentDomain.UnhandledException += GlobalExceptionHandler; //全局异常捕获
|
|
var host = CreateHostBuilder(args).Build();
|
|
|
|
var hostTask = host.RunAsync();
|
|
var appConfig = host.Services.GetService<AppConfig>();
|
|
//var logPath = $"{appConfig.logPath}/Logs/{DateTime.UtcNow:yyyy-MM-dd}/";
|
|
//Log.Information($"系统初始化完成,日志存放路径:{appConfig.logPath}");
|
|
serilogHelper = host.Services.GetRequiredService<SerilogHelper>();
|
|
|
|
MainCentralControl mainCentralControl = new MainCentralControl(host);
|
|
mainCentralControl.Start();
|
|
|
|
serilogHelper.Info("iMES系统启动成功");
|
|
while (true)
|
|
{
|
|
Console.ReadLine();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Console.WriteLine(ex.Message);
|
|
if (serilogHelper != null)
|
|
{
|
|
serilogHelper.Error("系统启动失败,异常:" + ex.Message);
|
|
}
|
|
}
|
|
|
|
}
|
|
private static void GlobalExceptionHandler(object sender, UnhandledExceptionEventArgs e)
|
|
{
|
|
//当前线程名称
|
|
Thread.CurrentThread.Name = "Error";
|
|
if (e.ExceptionObject is Exception exception)
|
|
{
|
|
Console.WriteLine("全局异常捕获:");
|
|
Console.WriteLine(exception.Message);
|
|
Console.WriteLine(exception.StackTrace);
|
|
if (serilogHelper != null)
|
|
{
|
|
serilogHelper.Error("全局异常捕获:" + exception.Message + "\n" + exception.StackTrace);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Console.WriteLine("未知异常捕获:");
|
|
Console.WriteLine(e.ExceptionObject);
|
|
if (serilogHelper != null)
|
|
{
|
|
serilogHelper.Error("未知异常捕获:" + e.ExceptionObject);
|
|
}
|
|
}
|
|
}
|
|
public static IHostBuilder CreateHostBuilder(string[] args) =>
|
|
Host.CreateDefaultBuilder(args)
|
|
.UseSerilog()
|
|
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
|
|
.ConfigureWebHostDefaults(webBuilder =>
|
|
{
|
|
webBuilder.UseStartup<Startup>();
|
|
});
|
|
}
|
|
}
|