Example #1
0
        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));
            }
        }
Example #2
0
        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;
            }
        }
Example #3
0
        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
                       ));
        }
Example #4
0
        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));
        }