Пример #1
0
 public QueryDumpMiddleware(
     RequestDelegate next,
     IJsonLogger logger)
 {
     _next = next;
     Log   = new ClassJsonLogger <QueryDumpMiddleware>(logger);
 }
Пример #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="AsyncResponseHandler{TResponseKey}"/> class.
        /// </summary>
        /// <param name="keyExtractor">The "key extractor" delegate.</param>
        /// <param name="logger">The logger.</param>
        /// <param name="useRequestBodyBuffering">Enables request body buffering (required for key extraction from the body).</param>
        /// <param name="handlerRegistrationTimeOut">Maximum allowed time to register receive delegate.</param>
        public AsyncResponseHandler(
            Func <HttpContext, TResponseKey> keyExtractor,
            IJsonLogger logger,
            bool useRequestBodyBuffering        = true,
            TimeSpan handlerRegistrationTimeOut = default(TimeSpan))
        {
            if (keyExtractor == null)
            {
                throw new ArgumentNullException(nameof(keyExtractor));
            }

            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            if (handlerRegistrationTimeOut < TimeSpan.Zero)
            {
                throw new ArgumentOutOfRangeException(
                          nameof(handlerRegistrationTimeOut),
                          "Trap registration timeout should be positive.");
            }

            _keyExtractor = keyExtractor;
            Log           = new ClassJsonLogger <AsyncResponseHandler <TResponseKey> >(logger);

            _useRequestBodyBuffering = useRequestBodyBuffering;

            if (handlerRegistrationTimeOut == default(TimeSpan))
            {
                handlerRegistrationTimeOut = TimeSpan.FromSeconds(10);
            }

            _handlerRegistrationTimeOut = handlerRegistrationTimeOut;
        }
Пример #3
0
        private ClusterNode(
            IIxHost indirectXHost,
            IWebHostBuilder webHostBuilder,
            IConfigurationRoot configRoot,
            IJsonLogger logger)
        {
            Log         = new ClassJsonLogger <ClusterNode>(logger);
            _executeCts = new CancellationTokenSource();
            _executeCancellationToken = _executeCts.Token;

            _indirectXHost = indirectXHost;
            _configRoot    = configRoot;

            Log.Info(_ => _("Starting Asp.Net core..."));

            _webHost = webHostBuilder
                       .UseStartup <ClusterNodeStartup>()
                       .Build();

            _webHost.Start();
            _hostLifetimeService = _webHost.Services.GetRequiredService <IApplicationLifetime>();

            Key = new ClusterNodeKey(_configRoot.GetValue(ClusterNodeIdKey, "single-node"));

            var addressesFeature = _webHost.ServerFeatures.Get <IServerAddressesFeature>();

            foreach (string addressesFeatureAddress in addressesFeature.Addresses)
            {
                Log.Info(
                    addressesFeatureAddress,
                    (_, addr) => _($"NodeId = '{Key.Code}' listening on: {addr}").Data(new { ListenAddress = addr }));
            }

            Console.CancelKeyPress += (sender, e) =>
            {
                if (!_executeCancellationToken.IsCancellationRequested)
                {
                    Log.Trace(_ => _("Termination raised by system."));
                    _executeCts.Cancel();
                }

                e.Cancel = true;
            };
        }
Пример #4
0
        // [Require(typeof(IClusterNode))]
        private LoggerWebApp(
            IIxResolver resolver,
            IWebHostBuilder webHostBuilder,
            IJsonLogger logger,
            ILogReader logReader,
            LoggerWebAppConfig config)
        {
            Log = new ClassJsonLogger <LoggerWebApp>(logger);

            Log.Info(_ => _("Starting Asp.Net core..."));
            _webHost = webHostBuilder

                       // Should be removed after adoption IndirectX to Asp.Net core.
                       .ConfigureServices(
                x => x
                .AddHttpRequestScopeService()
                .AddScopedHttpContextAccessor()
                .AddSingleton(new Tuple <IJsonLogger, IIxResolver>(Log, resolver))
                .AddSingleton <ILogReader>(logReader)
                .AddSingleton(config))
                       .UseStartup <LoggerWebAppStartup>()
                       .ConfigureJsonFormatters(JsonDefaults.RestRpcSerializerSource.Settings)
                       .Build();
            _webHost.Start();

            var addressesFeature = _webHost.ServerFeatures.Get <IServerAddressesFeature>();
            var addresses        = new HashSetEx <string>();

            foreach (string addressesFeatureAddress in addressesFeature.Addresses)
            {
                addresses.Add(addressesFeatureAddress);
                Log.Info(
                    addressesFeatureAddress,
                    (_, addr) => _($"Now listening on: {addr}").Data(new { ListenAddress = addr }));
            }

            HostingUrls = addresses;
        }
Пример #5
0
 public DumpHandler(HttpMessageHandler inner, IJsonLogger logger)
     : base(inner)
 {
     Log = new ClassJsonLogger <DumpHandler>(logger);
 }
Пример #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PersistenceBase{TPersistence,TUnitOfWork}"/> class.
 /// </summary>
 /// <param name="logger">Logger for persistence.</param>
 /// <remarks>
 /// Do not forget to call Initialize method as last operation in the constructor.
 /// </remarks>
 protected PersistenceBase(IJsonLogger logger)
 {
     // Do nothing.
     Log = new ClassJsonLogger <TPersistence>(logger);
 }