private VostokApplicationRunResult BuildEnvironment() { ChangeStateTo(VostokApplicationState.EnvironmentSetup); try { var environmentFactorySettings = new VostokHostingEnvironmentFactorySettings { ConfigureStaticProviders = settings.ConfigureStaticProviders, BeaconShutdownTimeout = settings.BeaconShutdownTimeout, BeaconShutdownWaitEnabled = settings.BeaconShutdownWaitEnabled, SendAnnotations = settings.SendAnnotations }; environment = EnvironmentBuilder.Build(SetupEnvironment, environmentFactorySettings); log = environment.Log.ForContext <VostokHost>(); return(null); } catch (Exception error) { return(ReturnResult(VostokApplicationState.CrashedDuringEnvironmentSetup, error)); } }
public Host CreateHost() { Type type = typeof(HostFactory); HostLogger.Get <HostConfiguratorImpl>() .InfoFormat("{0} v{1}, .NET Framework v{2}", type.Namespace, type.Assembly.GetName().Version, Environment.Version); EnvironmentBuilder environmentBuilder = _environmentBuilderFactory(this); HostEnvironment environment = environmentBuilder.Build(); ServiceBuilder serviceBuilder = _serviceBuilderFactory(_settings); HostBuilder builder = _hostBuilderFactory(environment, _settings); foreach (HostBuilderConfigurator configurator in _configurators) { builder = configurator.Configure(builder); } try { return(builder.Build(serviceBuilder)); } //Intercept exceptions from serviceBuilder, TopShelf handling is in HostFactory catch (Exception ex) { builder.Settings?.ExceptionCallback(ex); throw; } }
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 )); }
public Host CreateHost() { Type type = typeof(HostFactory); _log.InfoFormat("{0} v{1}, .NET Framework v{2}", type.Namespace, type.Assembly.GetName().Version, Environment.Version); EnvironmentBuilder environmentBuilder = _environmentBuilderFactory(); HostEnvironment environment = environmentBuilder.Build(); ServiceBuilder serviceBuilder = _serviceBuilderFactory(_settings); HostBuilder builder = _hostBuilderFactory(environment, _settings); foreach (HostBuilderConfigurator configurator in _configurators) { builder = configurator.Configure(builder); } return(builder.Build(serviceBuilder)); }