using Microsoft.AspNetCore; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using Serilog; using Serilog.Sinks.InfluxDB; using System; using System.IO; using System.Linq; using System.Text; namespace UserCenter { 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("useConfigServer", false)) { o.AddNacosConfiguration(o => { var section = config.GetSection("nacosConfigServer"); o.ServerAddresses = section.GetValue("ServerAddresses").Split(';').ToList(); o.Optional = section.GetValue("Optional"); o.DataId = section.GetValue("DataId"); o.Group = section.GetValue("Group"); o.Tenant = section.GetValue("Tenant"); }); } }) .ConfigureLogging((c, o) => //http://localhost:9200/_search?size=100 { if (config.GetValue("useLogServer", false)) { var url = c.Configuration["elasticsearch:url"]; var connectionInfo = new InfluxDBConnectionInfo { Address = config["logserver:influxdb:address"], Port = config.GetValue("logserver:influxdb:port", 8086), DbName = config["logserver:influxdb:dbName"], Username = config["logserver:influxdb:username"], Password = config["logserver:influxdb:password"] }; Log.Logger = new LoggerConfiguration().WriteTo.InfluxDB("iotcenter", connectionInfo).CreateLogger(); } else { Log.Logger = new LoggerConfiguration().WriteTo.Console().CreateLogger(); } o.AddSerilog(); Log.Logger.Information("start..."); }) .UseStartup() .Build() .Run(); } } }