public BuildContext(VostokHostingEnvironmentFactorySettings settings) { this.settings = settings; substitutableLog = new SubstitutableLog(); substitutableTracer = new SubstitutableTracer(); substitutableDatacenters = new SubstitutableDatacenters(); Disposables = new List <object>(); ExternalComponents = new HashSet <object>(ByReferenceEqualityComparer <object> .Instance); }
private VostokHostingEnvironment SetupEnvironment() { var environmentFactorySettings = new VostokHostingEnvironmentFactorySettings { ConfigureStaticProviders = settings.ConfigureStaticProviders, DiagnosticMetricsEnabled = settings.DiagnosticMetricsEnabled }; return(EnvironmentBuilder.Build( builder => { builder.SetupApplicationIdentity( identityBuilder => identityBuilder .SetProject("VostokMultiHost") .SetEnvironment("VostokMultiHost") .SetApplication("VostokMultiHost") .SetInstance("VostokMultiHost")); settings.EnvironmentSetup(builder); builder.SetupLog(logBuilder => logBuilder.CustomizeLog(toCustomize => toCustomize.ForContext <VostokMultiHost>())); builder.DisableServiceBeacon(); builder.SetupLog(logBuilder => logBuilder.SetupHerculesLog(herculesLogBuilder => herculesLogBuilder.Disable())); builder.SetupMetrics(metricsBuilder => metricsBuilder.SetupHerculesMetricEventSender(senderBuilder => senderBuilder.Disable())); builder.SetupSystemMetrics( systemMetricsSettings => { systemMetricsSettings.EnableGcEventsLogging = false; systemMetricsSettings.EnableGcEventsMetrics = false; systemMetricsSettings.EnableProcessMetricsLogging = false; systemMetricsSettings.EnableProcessMetricsReporting = false; systemMetricsSettings.EnableHostMetricsLogging = false; systemMetricsSettings.EnableHostMetricsReporting = false; }); }, environmentFactorySettings )); }