Пример #1
0
        static IBusControl Build(IBusFactory factory, IBusConfiguration busConfiguration, IEnumerable <ValidationResult> validationResult)
        {
            if (LogContext.Current == null)
            {
                LogContext.ConfigureCurrentLogContext();
            }

            busConfiguration.HostConfiguration.LogContext = LogContext.Current;

            var result = BusConfigurationResult.CompileResults(validationResult);

            try
            {
                var busReceiveEndpointConfiguration = factory.CreateBusEndpointConfiguration(x => x.ConfigureConsumeTopology = false);

                var host = busConfiguration.HostConfiguration.Build();

                var bus = new MassTransitBus(host, busConfiguration.BusObservers, busReceiveEndpointConfiguration);

                TaskUtil.Await(() => busConfiguration.BusObservers.PostCreate(bus));

                return(bus);
            }
            catch (Exception ex)
            {
                TaskUtil.Await(() => busConfiguration.BusObservers.CreateFaulted(ex));

                throw new ConfigurationException(result, "An exception occurred during bus creation", ex);
            }
        }
Пример #2
0
        /// <summary>
        /// Configure the built-in <see cref="LogContext"/> to use the specified <see cref="ILoggerFactory"/>. Note that this is actually a global
        /// instance, and is not configured for each bus.
        /// </summary>
        /// <param name="configurator">The bus factory configurator</param>
        /// <param name="loggerFactory">The loggerFactory instance</param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException"></exception>
        public static void SetLoggerFactory(this IBusFactoryConfigurator configurator, ILoggerFactory loggerFactory)
        {
            if (configurator == null)
            {
                throw new ArgumentNullException(nameof(configurator));
            }
            if (loggerFactory == null)
            {
                throw new ArgumentNullException(nameof(loggerFactory));
            }

            LogContext.ConfigureCurrentLogContext(loggerFactory);
        }