public void Should_Log_Api_Log_Using_Redis_Secondary()
        {
            var id     = Convert.ToString(Guid.NewGuid());
            var apiLog = Utility.GetApiLog();

            apiLog.Id = id;
            var formatter     = JsonLogFormatter.Instance;
            var firehoseSink  = new FirehoseSink(null);
            var redisSink     = Utility.GetRedisSink();
            var compositeSink = Utility.GetCompositeSink(formatter, firehoseSink, redisSink);

            var logWriter = new LogWriter(formatter, compositeSink);

            logWriter.WriteAsync(apiLog).GetAwaiter().GetResult();
            //Thread.Sleep(40000);

            var logData   = Utility.GetEsLogDataById(id);
            var esLogId   = string.Empty;
            var logSource = string.Empty;

            logData.TryGetValue("id", out esLogId);
            logData.TryGetValue("log_source", out logSource);

            Assert.AreEqual(id, esLogId);
            Assert.AreEqual("redis", logSource);
        }
        public static FirehoseSink GetFirehoseSink()
        {
            FirehoseSettingsProvider firehoseLogSettingsProvider;

            lock (_lock)
            {
                var configProvider = new Tavisca.Common.Plugins.Configuration.ConfigurationProvider("hotel_content_service");
                firehoseLogSettingsProvider = new FirehoseSettingsProvider(configProvider);
            }
            var firehoseSink = new FirehoseSink(firehoseLogSettingsProvider);

            return(firehoseSink);
        }
        public static FirehoseSink GetCrossAccountFirehoseSink()
        {
            FirehoseSettingsProvider firehoseLogSettingsProvider;

            lock (_lock)
            {
                var configurationBuilder = new ConfigurationBuilder();
                configurationBuilder.WithSensitiveDataProvider(new ParameterStoreProvider());
                var configProvider = new Tavisca.Common.Plugins.Configuration.ConfigurationProvider("test_arn_app", configurationBuilder);
                firehoseLogSettingsProvider = new FirehoseSettingsProvider(configProvider);
            }
            var firehoseSink = new FirehoseSink(firehoseLogSettingsProvider);

            return(firehoseSink);
        }