static void Main(string[] args) { var clusterConfiguration = new EphemeralClusterConfiguration("7.9.0"); using var cluster = new EphemeralCluster(clusterConfiguration); cluster.Start(TimeSpan.FromMinutes(2)); var uri = cluster.NodesUris().First(); var nestIndex = "logs-from-nest"; Announce("NEST + Elastic.CommonSchema", nestIndex); var settings = new ConnectionSettings(uri).EnableDebugMode(); var client = new ElasticClient(settings); var bulkAll = client.BulkAll(GetEcsEvents(10_000), b => b .Index(nestIndex) .Size(1_000) .RefreshOnCompleted() .BufferToBulk((bulk, items) => bulk.CreateMany(items)) ); bulkAll.Wait(TimeSpan.FromMinutes(2), r => Console.WriteLine("Indexed 1000 events")); Check(client, nestIndex); // Using Serilog ElasticsearchSink var sinkIndex = "logs-from-sink"; Announce("Elastic.CommonSchema.Serilog", sinkIndex); var options = new ElasticsearchSinkOptions(uri) { CustomFormatter = new EcsTextFormatter(), IndexFormat = sinkIndex + "-{0:yyyy-MM-dd}", DetectElasticsearchVersion = true, BatchAction = ElasticOpType.Create, BatchPostingLimit = 1_000, }; var logger = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.Elasticsearch(options) .CreateLogger(); Log.Logger = logger; foreach (var e in GetEcsEvents(10_000)) { Log.Debug("Reusing {field1} by {another_field}: {message}", "some value", true, e.Message); } Log.CloseAndFlush(); Check(client, $"{sinkIndex}-*"); }
static void Main(string[] args) { Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .MinimumLevel.Override("Microsoft", LogEventLevel.Information) .Enrich.FromLogContext() .WriteTo.Console() .CreateLogger(); #if DEBUG var loggingBlacklist = new HashSet <string>(); #else var loggingBlacklist = new HashSet <string>(); #endif Logging.Logger.LogAction = (o, level, message, parameters) => { if (loggingBlacklist.Contains(o)) { return; } if (!string.IsNullOrEmpty(o)) { message = $"[{o}] {message}"; } if (level == Logging.TraceEventType.Verbose.ToString().ToLower()) { Log.Debug(message); } else if (level == Logging.TraceEventType.Information.ToString().ToLower()) { Log.Information(message); } else if (level == Logging.TraceEventType.Warning.ToString().ToLower()) { Log.Warning(message); } else if (level == Logging.TraceEventType.Critical.ToString().ToLower()) { Log.Fatal(message); } else if (level == Logging.TraceEventType.Error.ToString().ToLower()) { Log.Error(message); } else { Log.Debug(message); } }; // load data. var routerDb = BuildRouterDb.BuildOrLoad(); // load transit db. var transitDb = BuildTransitDb.BuildOrLoad(); var router = new Router(routerDb) { VerifyAllStoppable = true, CustomRouteBuilder = new Temp.Temp() }; var antwerpen1 = new Coordinate(51.21880619138497f, 4.397792816162109f); var antwerpen2 = new Coordinate(51.21888683113129f, 4.432253837585449f); var brusselHermanTeir = new Coordinate(50.865696744357294f, 4.3497008085250854f); var brusselCentraal = new Coordinate(50.83144119255431f, 4.339964389801025f); var lille = new Coordinate(51.25979327802935f, 4.875869750976562f); var turnhout = new Coordinate(51.3202332109125f, 4.9339234828948975f); var tourEnTaxis = new Coordinate(50.86439661723841f, 4.348719120025635f); var marcheEnFamenne = new Coordinate(50.23142236000259f, 5.333776473999023f); var ieper = new Coordinate(50.85532180383167f, 2.860565185546875f); // // var route = router.Calculate(router.Db.GetSupportedProfile("pedestrian.shortcut"), // antwerpen1, antwerpen2); // File.WriteAllText("route-antwerpen.json", route.ToGeoJson()); // // route = router.Calculate(router.Db.GetSupportedProfile("pedestrian.shortcut"), // brusselHermanTeir, brusselCentraal); // File.WriteAllText("route-brussel.json", route.ToGeoJson()); // var sourceLocation = antwerpen2; var targetLocation = brusselHermanTeir; var routeResult = router.TryCalculateIntermodal(transitDb, router.Db.GetSupportedProfile("pedestrian"), sourceLocation, targetLocation); File.WriteAllText("intermodal-route1.json", routeResult.Value.ToGeoJson()); routeResult = router.TryCalculateIntermodal(transitDb, router.Db.GetSupportedProfile("pedestrian"), antwerpen2, lille); File.WriteAllText("intermodal-route2.json", routeResult.Value.ToGeoJson()); routeResult = router.TryCalculateIntermodal(transitDb, router.Db.GetSupportedProfile("pedestrian"), turnhout, lille); File.WriteAllText("intermodal-route3.json", routeResult.Value.ToGeoJson()); routeResult = router.TryCalculateIntermodal(transitDb, router.Db.GetSupportedProfile("pedestrian"), turnhout, marcheEnFamenne); File.WriteAllText("intermodal-route4.json", routeResult.Value.ToGeoJson()); routeResult = router.TryCalculateIntermodal(transitDb, router.Db.GetSupportedProfile("pedestrian"), turnhout, ieper); File.WriteAllText("intermodal-route5.json", routeResult.Value.ToGeoJson()); }