You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iot/projects/Platform/Program.cs

56 lines
1.8 KiB

using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Settings.Configuration;
using System;
using System.IO;
using System.Text;
namespace Platform
{
public class Program
{
public static void Main(string[] args)
{
Console.OutputEncoding = Encoding.UTF8;
var config = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true)
.Build();
var logConfig = new LoggerConfiguration()
.ReadFrom.Configuration(config, ConfigurationAssemblySource.AlwaysScanDllFiles)
.WriteTo.Console();
logConfig = config.GetSection("AppSettings").GetValue("Log", "File") == "File"
? logConfig.WriteTo.File("logs/log.txt", rollOnFileSizeLimit: true, fileSizeLimitBytes: 100 * 1024 * 1024, rollingInterval: RollingInterval.Infinite)
: logConfig.WriteTo.SQLite(Path.Combine(Directory.GetCurrentDirectory(), "log.db"));
Log.Logger = logConfig.CreateLogger();
try
{
Log.Information("web host start");
WebHost.CreateDefaultBuilder(args)
.UseConfiguration(config)
.UseSerilog()
.UseStartup<Startup>()
.Build()
.Run();
Log.Information("web host end");
}
catch (Exception ex)
{
Log.Fatal(ex, "Host terminated unexpectedly");
return;
}
finally
{
Log.CloseAndFlush();
}
}
}
}