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/IoTCenter/Program.cs

72 lines
3.0 KiB

using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Serilog;
using Serilog.Formatting.Json;
using Serilog.Sinks.Elasticsearch;
using Serilog.Sinks.RollingFile;
using System;
using System.IO;
using System.Linq;
using System.Text;
namespace IoTCenter
{
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();
WebHost.CreateDefaultBuilder(args)
.UseConfiguration(config)
.ConfigureAppConfiguration((c, o) =>
{
if (config.GetValue<bool>("useConfigServer", false))
{
o.AddNacosConfiguration(o =>
{
var section = config.GetSection("nacosConfigServer");
o.ServerAddresses = section.GetValue<string>("ServerAddresses").Split(';').ToList();
o.Optional = section.GetValue<bool>("Optional");
o.DataId = section.GetValue<string>("DataId");
o.Group = section.GetValue<string>("Group");
o.Tenant = section.GetValue<string>("Tenant");
});
}
})
.ConfigureLogging((c, o) => //http://localhost:9200/_search?size=100
{
if (config.GetValue<bool>("useLogServer", false))
{
var url = c.Configuration["elasticsearch:url"];
Log.Logger = new LoggerConfiguration()
.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(url))
{
TypeName = "_doc",
AutoRegisterTemplate = true,
AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv7,
FailureCallback = e => Console.WriteLine("Unable to submit event " + e.MessageTemplate),
EmitEventFailure = EmitEventFailureHandling.WriteToSelfLog |
EmitEventFailureHandling.WriteToFailureSink |
EmitEventFailureHandling.RaiseCallback,
FailureSink = new RollingFileSink("logs/log.txt", new JsonFormatter(), fileSizeLimitBytes: 100 * 1024 * 1024, 1)
})
.CreateLogger();
}
else
{
Log.Logger = new LoggerConfiguration().WriteTo.Console().CreateLogger();
}
o.AddSerilog();
})
.UseStartup<Startup>()
.Build()
.Run();
}
}
}