2024-11-12 18:18:43 +08:00

69 lines
2.2 KiB
C#

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Serilog;
namespace JiShe.CollectBus.Console
{
internal class Program
{
static void Main(string[] args)
{
try
{
Log.Logger = new LoggerConfiguration()
.WriteTo.Console()
.CreateLogger();
CreateHostBuilder(args).Build().Run();
}
catch (Exception ex)
{
Log.Fatal(ex, "Application terminated unexpectedly");
}
finally
{
Log.CloseAndFlush();
}
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration(ConfigureAppConfiguration)
.ConfigureServices((hostContext, services) => { ConfigureServices(services, hostContext); });
private static void ConfigureAppConfiguration(HostBuilderContext hostContext, IConfigurationBuilder config)
{
var env = hostContext.HostingEnvironment;
config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
config.AddEnvironmentVariables();
}
private static void ConfigureServices(IServiceCollection services, HostBuilderContext hostContext)
{
var configuration = hostContext.Configuration;
services.AddSerilog((context, lc) =>
{
lc.ReadFrom.Configuration(configuration)
.ReadFrom.Services(context);
});
services.ServiceRegister()
.ModuleRegister(configuration)
.PluginServiceRegister();
services.AddTcp(configuration);
//services.AddUdp(configuration);
services.AddStackExchangeRedisCache(options =>
{
options.Configuration = configuration["RedisCache:ConnectionString"];
options.InstanceName = configuration["RedisCache:InstanceName"];
});
}
}
}